建造者模式(一)
计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。
(1)类图
(2)源代码
public class Computer { private String cpu; private String ram; private String host; private String harddisk; public String getCpu() { return cpu; } public void setCpu(String cpu) { this.cpu = cpu; } public String getRam() { return ram; } public void setRam(String ram) { this.ram = ram; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getHarddisk() { return harddisk; } public void setHarddisk(String harddisk) { this.harddisk = harddisk; } } public abstract class ComputerBuilder { private Computer com=new Computer(); public abstract void buildCpu(); public abstract void buildRam(); public abstract void buildHarddisk(); public abstract void buildHost(); public Computer getComputer() { return com; } } public class ComputerFactory { private ComputerBuilder cb; public void setComputerBuilder(ComputerBuilder cb) { this.cb=cb; } public Computer construct() { cb.buildCpu(); cb.buildHarddisk(); cb.buildHost(); cb.buildRam(); return cb.getComputer(); } } Desktopbuilder public class DesktopBuilder { public void buildCpu() { System.out.println("台式机cpu"); } public void buildRam() { System.out.println("台式机内存"); } public void buildHarddisk() { System.out.println("台式机硬盘"); } public void buildHost() { System.out.println("台式机主机"); } } public class NoteBookBuilder extends ComputerBuilder{ public void buildCpu() { System.out.println("笔记本cpu"); } public void buildRam() { System.out.println("笔记本内存"); } public void buildHarddisk() { System.out.println("笔记本硬盘"); } public void buildHost() { System.out.println("笔记本主机"); } } public class Client { public static void main(String args[]) { ComputerBuilder cb=(ComputerBuilder)XMLUtil.getBean(); ComputerFactory cf=new ComputerFactory(); cf.setComputerBuilder(cb); Computer c=cf.construct(); } }