類中有多個構造函數,所以很難決定在開發期間調用哪個。用可以說明意圖的返回對象實例的Creation Method替換構造函數。 java
public class Person { private String name; private String phone; private String car; private String house; public Person(String name, String phone, String house, String car){ this.name = name; this.phone = phone; this.house = house; this.car = car; } public Person(String name){ this(name, null, null, null); } public Person(String name, String phone){ this(name, phone, null, null); } public Person(String name, String phone, String car){ this(name, phone, car, null); } }
咱們在使用Person類的時候,會建立這幾類人:有房有車有電話、沒房有車有電話、沒房沒車有電話,只有電話、什麼都沒有的人。單單的一個Person構造函數沒法表達清楚咱們的這些需求。 程序員
public class Person { private String name; private String phone; private String car; private String house; private Person(String name, String phone, String house, String car){ this.name = name; this.phone = phone; this.house = house; this.car = car; } public static Person createPoorPerson(String name){ return new Person(name, null, null, null); } public static Person createPersonWithPhone(String name, String phone){ return new Person(name, phone, null, null); } public static Person createPersonWithPhoneCar(String name, String phone, String car){ return new Person(name, phone, null, car); } public static Person createRichPerson(String name, String phone, String house, String car){ return new Person(name, phone, house, car); } }
Person poor = Person.createPoorPerson("aqia"); Person rich = Person.createRichPerson("aqia", "1511510000", "house", "car");