发表于: 2018-03-05 23:48:39

1 543


今天完成的事情:

1. 设计模式之建造者模式

2. 投简历


明天计划的事情

1.上午复习面试,下午面试



遇到的问题:

1. 无



收获:

1. 建造者模式

角色:
  1. 产品(也可以说是公共零件的组合):规定产品需要哪些部件/零件组成()
  2. 抽象建造者:生产零件的接口(可能是公共零件的接口)
  3. 具体建造者:实现抽象建造者(可能包含非公共零件的实现(私有零件无接口))
  4. 导演者:零件之间如何组装,生产产品。
  5. 产品:生产出来的产品


public interface Builder {

//产品零件的建造方法
   public void buildPart1();
   public void buildPart2();
   //返回产品的方法
   public Product retrieveResult();
}
public class ConcreteBuilder implements Builder {

private Product product = new Product();

   @Override
   public void buildPart1(){
product.setPart1("编号:007");
   }

@Override
   public void buildPart2(){
product.setPart2("名称:ad");
   }

@Override
   public Product retrieveResult(){
//返回产品
       return product;
   }
}


public class Director {
/**
    * 持有当前需要使用的建造器对象
    */
   private Builder builder;
   /**
    * 构造方法,传入建造器对象
    * @param builder 建造器对象
    */
   public Director ( Builder builder){
this.builder = builder;
   }
/**
    * 产品构造方法,负责调用各个零件建造方法,比如产品的生产顺序等
    */
   public void construct(){
builder.buildPart1();
       builder.buildPart2();
   }

}


@Data
public class Product {


//定义产品的零件
   private String part1;
   private String part2;

}
@Test
public void builder(){
Builder builder = new ConcreteBuilder();
   Director director = new Director(builder);
   director.construct();
   Product product = builder.retrieveResult();
   System.out.println(product.getPart1());
   System.out.println(product.getPart2());
}



返回列表 返回列表
评论

    分享到