设计模式之建造者模式(Builder Pattern)

来源:互联网 发布:大学的意义知乎 编辑:程序博客网 时间:2024/04/30 07:31

建造者模式包含四个角色:
Builder:抽象建造者
ConcreteBuilder:具体建造者
Director:指挥者
Product:产品角色

Builder:

public abstract class Builder {    //第一步,装CPU    public abstract void BuilderCPU();    //第二步,装主板    public abstract void BuilderMainboard();    //第三步,装硬盘    public abstract void BuilderHD();    //返回产品,获得组装好的电脑    public abstract Computer getComputer();}

ConcreteBuilder:

public class ConcreteBuilder extends Builder{    //创建产品实例    Computer computer = new Computer();    //组装产品    @Override    public void BuilderCPU() {        // TODO Auto-generated method stub        computer.add("cpu");    }    @Override    public void BuilderMainboard() {        // TODO Auto-generated method stub        computer.add("主板");    }    @Override    public void BuilderHD() {        // TODO Auto-generated method stub        computer.add("硬盘");    }    @Override    public Computer getComputer() {        // TODO Auto-generated method stub        return computer;    }}

Director:

public class Director {    //指挥装机人员装电脑    public void Construct(Builder builder){        builder.BuilderCPU();        builder.BuilderMainboard();        builder.BuilderHD();    }}

Product:

public class Computer {    //电脑组件的集合    private List<String> parts = new ArrayList<>();    //用于将组件组装到电脑里    public void add(String part){        parts.add(part);    }    public void show(){        for(int i = 0; i < parts.size() ;i++){            System.out.println("组装了"+parts.get(i));        }        System.out.println("电脑组装完成");    }}

BuilderPattern:

public class BuilderPattern {    public static void main(String[] args) {        //找到该店的老板和装机人员        Director director = new Director();        Builder builder = new ConcreteBuilder();        //老板叫人去装电脑        director.Construct(builder);        //装完后,组装人员拿来装好的电脑        Computer computer = builder.getComputer();        //把电脑拿给小成        computer.show();    }}

输出结果:

组装了cpu组装了主板组装了硬盘电脑组装完成
0 0
原创粉丝点击