发表于: 2018-03-05 23:48:39
1 543
今天完成的事情:
1. 设计模式之建造者模式
2. 投简历
明天计划的事情
1.上午复习面试,下午面试
遇到的问题:
1. 无
收获:
1. 建造者模式
角色:
- 产品(也可以说是公共零件的组合):规定产品需要哪些部件/零件组成()
- 抽象建造者:生产零件的接口(可能是公共零件的接口)
- 具体建造者:实现抽象建造者(可能包含非公共零件的实现(私有零件无接口))
- 导演者:零件之间如何组装,生产产品。
- 产品:生产出来的产品
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());
}
评论