設計模式-建立型-Builder
阿新 • • 發佈:2018-11-20
本質——簡化物件建立的編碼
一、what
建立複雜物件的一種方式。
二、why
簡化了物件建立的步驟
提升了程式碼可讀性
物件的建立過程和表示分離
三、how
/** * @Description: 建造者模式 * @date 2018-02-17 21:22 */ @ToString @Getter @Setter public class Person { private final String name; private int age; private String sex; private String father; private String mather; public static class Builder { private final String name; private int age; private String sex; private String father; private String mather; public Builder(String name) { this.name = name; } public Builder age(int age) { this.age = age; return this; } public Builder sex(String sex) { this.sex = sex; return this; } public Builder mather(String mather) { this.mather = mather; return this; } public Builder father(String father) { this.father = father; return this; } public Person Build(){ return new Person(this); } } private Person(Builder builder){ this.name = builder.name; this.sex = builder.sex; this.father = builder.father; this.mather = builder.mather; this.age = builder.age; } } public static void main(String[] args) throws IOException { Person person = new Person.Builder("張三").sex("男").age(23).Build(); System.out.println(person); }
簡單版
@Setter @Getter @ToString public class Schema { /** * 意圖 */ @NonNull private String intent; /** * 分數 */ private int score; public Schema buildIntent(String intent){ this.intent = intent; return this; } public Schema buildScore(int score){ this.score = score; return this; } }