建造者模式
开闭原则: 对修改关闭,对扩展开放
最终结果
Product product = new Builder(1).color("red").market("12").size("13").type("格子衬衫").build();
或者
Product product = new Builder(1).size("13").type("格子衬衫").build();
或者一个都不加
Product product = new Builder(1).build();
--- 很巧妙的,不用再为构造方法发愁,pojo中添加了新的字段,也不用重新生成或者修改构造方法,
直接上示例
package com.ittest;
public class Product {
private Integer id;
private String color;
private String size;
private String type;
private String market;
public Product(Builder builder) {
this.id = builder.id;
this.type = builder.type;
this.size = builder.size;
this.color = builder.color;
this.market = builder.market;
}
public static class Builder {
private Integer id;
private String color;
private String size;
private String type;
private String market;
public Builder(Integer id) {
this.id = id;
}
public Builder color(String color){
this.color = color;
return this;
}
public Builder size(String size){
this.size = size;
return this;
}
public Builder type(String type){
this.type = type;
return this;
}
public Builder market(String market){
this.market = market;
return this;
}
public Product build(){
return new Product(this);
}
}
public static void main(String[] args) {
Product product = new Builder(1).color("red").market("12").size("13").type("格子衬衫").build();
System.out.println(product);
}
}