电脑用cpu,gpu,memory,hardDisk,power
public class Computer {
private String cpu;
private String gpu;
private String memory;
private String hardDisk;
private String power;
//省略getset和tostring
}
public interface ComputerBuilder {
public void cpu();
public void gpu();
public void memory();
public void hardDisk();
public void power();
public Computer build();
}
public class Director {
public Computer build(ComputerBuilder builder) {
builder.cpu();
builder.gpu();
builder.memory();
builder.hardDisk();
builder.power();
return builder.build();
}
}
public class PickComputer1 implements ComputerBuilder{
private Computer computer = new Computer();
@Override
public void cpu() {
computer.setCpu("cpu1");
}
@Override
public void gpu() {
computer.setGpu("gpu1");
}
@Override
public void memory() {
computer.setMemory("memory1");
}
@Override
public void hardDisk() {
computer.setHardDisk("hardDisk1");
}
@Override
public void power() {
computer.setPower("power1");
}
@Override
public Computer build() {
return computer;
}
}
public class Customer {
public static void main(String[] args) {
Director d = new Director();
Computer computer = d.build(new PickComputer1());
System.out.println(computer);
}
}
汽车用车身,发动机,车门,车窗制造BMW,Ben_z
public class Car {
private String carBody;
private String engine;
private String carDoor;
private String carWindow;
省略getset和tostring
}
public interface CarBuilder {
public void createCarBody();
public void createEngine();
public void createCarDoor();
public void createCarWindow();
public Car build();
}
public class Director {
public static Car build(CarBuilder builder){
builder.createCarBody();
builder.createEngine();
builder.createCarDoor();
builder.createCarWindow();
return builder.build();
}
}
public class BMWBuilder implements CarBuilder{
private Car car = new Car();
@Override
public void createCarBody() {
// TODO Auto-generated method stub
car.setCarBody("制作宝马车身");
}
@Override
public void createEngine() {
// TODO Auto-generated method stub
car.setEngine("制作宝马发动机");
}
@Override
public void createCarDoor() {
// TODO Auto-generated method stub
car.setCarDoor("制作宝马车门");
}
@Override
public void createCarWindow() {
// TODO Auto-generated method stub
car.setCarWindow("制作宝马车窗");
}
@Override
public Car build() {
// TODO Auto-generated method stub
return car;
}
}
public class BenzBuilder implements CarBuilder{
private Car car = new Car();
@Override
public void createCarBody() {
// TODO Auto-generated method stub
car.setCarBody("制作奔驰车身");
}
@Override
public void createEngine() {
// TODO Auto-generated method stub
car.setEngine("制作奔驰发动机");
}
@Override
public void createCarDoor() {
// TODO Auto-generated method stub
car.setCarDoor("制作奔驰车门");
}
@Override
public void createCarWindow() {
// TODO Auto-generated method stub
car.setCarWindow("制作奔驰车窗");
}
@Override
public Car build() {
// TODO Auto-generated method stub
return car;
}
}
public class CarStore {
public static void main(String[] args) {
Car bmw = Director.build(new BMWBuilder());
System.out.println(bmw);
Car benz = Director.build(new BenzBuilder());
System.out.println(benz);
}
}