欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

建造者模式

程序员文章站 2022-05-04 08:50:40
建造者模式创建模式,将产品的内部表象和产品的生产过程分割开来...

建造者模式

创建模式,将产品的内部表象和产品的生产过程分割开来
建造模式结构
建造者模式
抽象建造者(Builder)给出一个抽象接口,规范对象的各个组成成分,如电脑,需要cpu,硬盘等
具体建造者:实现抽象建造者声明的接口,提*品的实例
产品:比如构建好的电脑是一个产品,一个系统可以生产多个产品,产品之间可以互不关联
导演者:调用具体建造者以创建对象
具体建造者:调用创建产品的实例

导演者负责和客户端打交道,将客户的需求划分为对各个零件的建造请求,再委派给具体建造者
一般一个产品类就拥有一个具体的建造者

使用场景举例:工厂:生产电脑
顾客:说出想要电脑型号,配置,然后找到director(经理)购买即可,不需要了解具体组装


public class Client {
    public static void main(String[] args) {
        Builder builder=new SpecificalBuilder();
        Director director = new Director(builder);
        director.print_information();
        Product product = builder.retriveresult();

        product.getPart1();
        product.getPart2();
        System.out.println("组装成功");
    }
}
public class Director {
    private Builder builder=null;
  public Director(Builder builder){
      this.builder=builder;
  }
  public  void print_information(){
      builder.bulidPart1();

      builder.bulidPart2();

  }
}

abstract class Builder {
    abstract void bulidPart1();

    abstract void bulidPart2();

  abstract Product retriveresult() ;

}

public class SpecificalBuilder extends Builder {
     private Product product=new Product();
    @Override
    void bulidPart1() {
        product.setPart1("CPU");
        System.out.println("CPU正在组装。。。");
    }

    @Override
    void bulidPart2() {
       product.setPart2("Mainboard");
        System.out.println("Mainboard正在组装。。。");
    }

    @Override
    Product retriveresult() {
        return product;
    }
}

public class Product {
    private String part1;
    private String part2;

    public String getPart1() {
        System.out.println(part1+"组装完毕");
        return part1;
    }

    public void setPart1(String part1) {
        this.part1 = part1;
    }

    public String getPart2() {
        System.out.println(part2+"组装完毕");
        return part2;
    }

    public void setPart2(String part2) {
        this.part2 = part2;
    }
}

本文地址:https://blog.csdn.net/qq_26022589/article/details/107467826

相关标签: 设计模式 java