package com.builder; //组装的产品类Laptop,是由CPU,Monitor,Keyboard组成 //so需要单独定义三个类CPU,Monitor,Keyboard,作为Laptop的成员 public class Laptop { public CPU getCpu() { return cpu; } public void setCpu(CPU cpu) { this.cpu = cpu; } public Monitor getMonitor() { return monitor; } public void setMonitor(Monitor monitor) { this.monitor = monitor; } public Keyboard getKeyboard() { return keyboard; } public void setKeyboard(Keyboard keyboard) { this.keyboard = keyboard; } private CPU cpu; private Monitor monitor; private Keyboard keyboard; public void start() { System.out.println("Start successfully"); } }
class CPU{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public CPU(String name) { this.name = name; } }
class Monitor{ public String getName() { return name; } public void setName(String name) { this.name = name; } private String name; public Monitor(String name) { this.name = name; } }
class Keyboard{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Keyboard(String name) { this.name= name; } }
(2)构造接口(PartBuilder)
package com.builder;
public interface PartBuilder {
CPU createCPU();
Monitor createMonitor();
Keyboard createKeyboard();
}
(3)装配接口(LaptopDirector)
package com.builder;
public interface LaptopDirector {
Laptop createLaptop();
}
(4)构造接口的实现类(RealizationPartBuillder)
package com.builder;
public class RealizationPartBuillder implements PartBuilder { @Override public CPU createCPU() { // TODO Auto-generated method stub System.out.println("CPU is created"); return new CPU("A new CPU"); }
@Override public Monitor createMonitor() { // TODO Auto-generated method stub System.out.println("Monitor is created"); return new Monitor("A new Monitor"); }
@Override public Keyboard createKeyboard() { // TODO Auto-generated method stub System.out.println("Keyboard is created"); return new Keyboard("A new Keyboard"); } }
(5)组装接口的实现类(RealizationPartBuillder)
package com.builder;
public class RealizationLaptopDirector implements LaptopDirector { private RealizationPartBuillder builder; public RealizationLaptopDirector(RealizationPartBuillder builder) { this.builder = builder; }
@Override public Laptop createLaptop() { // TODO Auto-generated method stub CPU cpu = builder.createCPU(); Monitor monitor = builder.createMonitor(); Keyboard keyboard = builder.createKeyboard();
public class Client { public static void main(String args[]) { RealizationPartBuillder partBuilder = new RealizationPartBuillder(); RealizationLaptopDirector laptopBuilder = new RealizationLaptopDirector(partBuilder); Laptop laptop = laptopBuilder.createLaptop(); System.out.println(laptop);
} }
(7)运行结果:
CPU is created
Monitor is created
Keyboard is created
com.builder.Laptop@15db9742