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

    xiaoxiao2021-03-25  60

    建造者模式包含四个角色: 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 组装了主板 组装了硬盘 电脑组装完成
    转载请注明原文地址: https://ju.6miu.com/read-27667.html

    最新回复(0)