Builder生成器模式。
这种模式是创建型模式,是对于一个复杂对象创建比较有用。所谓复杂对象就是一个类中有很多的属性,实例化一个类的时候,需要赋值很多属性。其实对于这种模式,我觉得在实际开发中,对于对象属性赋值的set方法修改下返回值就行,让直接返回对象本身即可,实际上是编程的一种技巧而已。
public class MainTestBuilder {
public static void main(String[] args) {
Products p = new Products.ProductBuilder()
.buildName("zs")
.buildPrice(20D)
.buildUnit(new Unit("斤","1001"))
.build();
System.out.println(p.toString());
}
}
class Products{
private Products(){}
private String name;
private Double price;
private Unit unit;
public static class ProductBuilder{
private Products p;
public ProductBuilder(){
p = new Products();
}
public ProductBuilder buildName(String name){
p.name = name;
return this;
}
public ProductBuilder buildPrice(Double price){
p.price = price;
return this;
}
public ProductBuilder buildUnit(Unit unit){
p.unit = unit;
return this;
}
public Products build(){
return p;
}
}
@Override
public String toString() {
return "Products{" +
"name='" + name + '\'' +
", price=" + price +
", unit=" + unit.getName() +
'}';
}
}
class Unit{
private String name;
private String code;
public Unit(String name, String code){
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public String getCode() {
return code;
}
}