java 建造者Builder設計模式解析
阿新 • • 發佈:2018-12-09
Builder模式介紹
1.使用者使用簡單,不需要知道內部怎麼建立的
2.解耦,將構建的過程和表示分離開來
Builder模式的使用場景
1.相同的方法,不同的執行順序,產生不同的時間結果時。
2.多個部件或零件,都可以裝配到一個物件中,但是產生的執行結果又不同時。
3.產品類非常複雜,或者產品類中的呼叫順序不同產生了不同的作用,這個時候用建造者模式非常適合。
4.當初始化一個物件特別複雜,如引數多,切很多引數都具有預設值時。
Builder好處
1.提高程式碼可讀性,易懂
2.方便維護
在表示類中建立個內部類構建類,程式碼實現
public class Student { private String name; private Integer age; private String address; public StudentBuilder StudentBuilder(){ return new StudentBuilder(); } Student (StudentBuilder builder){ this.name = builder.name; this.age = builder.age; this.address = builder.address; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + ", address='" + address + '\'' + '}'; } public static class StudentBuilder { private String name; private Integer age; private String address; public StudentBuilder name(String name) { this.name = name; return this; } public StudentBuilder age(Integer age) { this.age = age; return this; } public StudentBuilder address(String address) { this.address = address; return this; } public Student build() { return new Student(this); } } }
測試程式碼
public static void main(String[] args){ Student student = new Student.StudentBuilder() .name("張三") .age(18) .address("北京市") .build(); System.out.println(student.toString()); }