**中,物件是對現實世界物的抽象。乙個物件可以含有大量的必要、不必要的屬性,我們在建立例項時,若採用帶參構 造器、getter/setter方法,由於引數過多,很容易引起混亂。 這時,引入構建者模式,可以清晰的觀測到例項化過程中,需要設定的屬性值。
建造者模式(builder pattern) 又名生成器模式,是一種物件構建模式。它可以將複雜物件的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現方法可以構造出不同表現(屬性)的物件。
直接上**:
package builder.source.pojo;
/** * @author hw
* @createtime 2018/9/4
* @dscrb
*/public class person
private person(builder builder)
public static class builder
public builder(string name, string phonenumber)
public person build()
public builder name(string name)
public builder phonenumber(string phonenumber)
public builder age(integer age)
public builder ***(char ***)
public builder address(string address)
public builder height(integer height)
public builder weight(integer weight)
public builder job(string job)
public builder salary(string salary)
public builder hobby(string hobby)
}//省略person類中的getter/setter方法
@override
public string tostring() ';
}}
測試**:
package builder.source.test;
import builder.source.pojo.person;
/** * @author hw
* @createtime 2018/9/4
* @dscrb
*/public class setperson
public static void set()
}
測試結果:
person
person
person
person
這種方式最大的好處就是在建立中使用流式建立物件,控制例項變數時需要的屬性。但是,在構建這個類時**會很龐大。 設計模式 建造者模式
在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...
設計模式建造者模式
今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...
設計模式 建造者模式
定義 將乙個複雜的物件的構建與它的表示分離,是的同樣的構建過程可以建立不同的表示。包括的要素 1 產品類 2 抽象建造者或者介面 3 建造者 4 導演類 建造者模式的優點 首先,建造者模式的封裝很好,使用建造者模式可以有效地封裝變化,注意在使用建造者模式的場景中,一般產品類和建造者介面是比較穩定的,...