加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第13章《建造者模式》

发布时间:2020-12-13 20:56:07 所属栏目:百科 来源:网络整理
导读:/** @Author: cxh @CreateTime: 18/1/7 23:45 @ProjectName: JavaBaseTest */ public class Client { public static void main(String[] args) { Director director=new Director(); ConcreteBuilder1 concreteBuilder1=new ConcreteBuilder1(); director.bu

/**

  • @Author: cxh

  • @CreateTime: 18/1/7 23:45

  • @ProjectName: JavaBaseTest
    */
    public class Client {
    public static void main(String[] args) {
    Director director=new Director();

     ConcreteBuilder1 concreteBuilder1=new ConcreteBuilder1();
     director.build(concreteBuilder1);
     Product product1=concreteBuilder1.getProduct();
    
     ConcreteBuilder2 concreteBuilder2=new ConcreteBuilder2();
     director.build(concreteBuilder2);
     Product product2=concreteBuilder2.getProduct();
    
     //输出product1
     System.out.println("product1:");
     for(String str:product1.product)
         System.out.println(str);
     System.out.println("---------");
    
     //输出product2
     System.out.println("product2:");
     for(String s:product2.product)
         System.out.println(s);

    }
    }


<span style="font-size:14px;">



/**

  • @Author: cxh
  • @CreateTime: 18/1/7 23:43
  • @ProjectName: JavaBaseTest
  • 指挥者
    */
    public class Director {
    public void build(Builder builder){
    builder.buildPartA();
    builder.buildPartB();
    builder.buildPartC();
    }
    }

<span style="font-size:14px;">


/**

  • @Author: cxh

  • @CreateTime: 18/1/7 23:35

  • @ProjectName: JavaBaseTest
    */
    public interface Builder {
    //为产品添加各个组成部分
    void buildPartA();
    void buildPartB();
    void buildPartC();

    //返回创建的产品
    Product getProduct();
    }


<span style="font-size:14px;">



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 23:39

  • @ProjectName: JavaBaseTest
    */
    public class ConcreteBuilder1 implements Builder {
    Product product;
    ConcreteBuilder1(){
    product=new Product();
    }

    @Override
    public void buildPartA() {
    product.addProperties("添加部件A");
    }

    @Override
    public void buildPartB() {
    product.addProperties("添加部件B");
    }

    @Override
    public void buildPartC() {
    product.addProperties("添加部件C");
    }

    @Override
    public Product getProduct() {
    return product;
    }
    }


<span style="font-size:14px;">



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 23:41

  • @ProjectName: JavaBaseTest
    */
    public class ConcreteBuilder2 implements Builder {
    Product product;
    ConcreteBuilder2(){
    product=new Product();
    }

    @Override
    public void buildPartA() {
    product.addProperties("添加部件X");
    }

    @Override
    public void buildPartB() {
    product.addProperties("添加部件Y");
    }

    @Override
    public void buildPartC() {
    product.addProperties("添加部件Z");
    }

    @Override
    public Product getProduct() {
    return product;
    }
    }


<span style="font-size:14px;">



import java.util.ArrayList;

/**

  • @Author: cxh

  • @CreateTime: 18/1/7 23:31

  • @ProjectName: JavaBaseTest
    */
    public class Product {
    ArrayList product=new ArrayList<>();

    public void addProperties(String str){
    product.add(str);
    }
    }


<span style="font-size:14px;">
参考书籍:《大话设计模式》-程杰

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读