建造者模式(一)

计算机组装工厂可以将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();
       
    }
}

 

posted @ 2022-10-09 19:06  今天又双叒叕在敲代码  阅读(11)  评论(0编辑  收藏  举报