構造者Builder模式

2021-08-27 10:54:28 字數 929 閱讀 8546

根據物件的屬性行為建立例項,通常有幾種方法:

(1)通過帶有引數的建構函式(同時函式過載),來滿足根據不同屬性(必選屬性,可選屬性)建立物件

(2)通過無參建構函式(或者有參建構函式),再配合屬性的getter,setter方法靈活地設定物件的屬性

(3)通過builder模式建立物件

分析幾種方式的特點:

方式(1)(2)對於簡單物件的建立比較合適,這種場景下物件屬性基本固定且屬性的數量不多,多使用幾個建構函式或者getter,setter好像**複雜程度也可以接受;

方式(3)更多用於物件屬性較多且屬性存在必選屬性以及可選屬性,client端可以根據需要有選擇地設定物件的屬性,而且這種方式不支援物件屬性的setter方法,另外這種方式基本支援物件建立過程中的鏈式程式設計。

舉例 (book 不能通過其建構函式直接建立,且建立之後不可變,只有getter方法):

public class book

public string getauthor()

public string getname()

public int getpagenumber()

public string gettype()

public string getpress()

@override

public string tostring()

public static class builder

public builder settype(string type)

public builder setpress(string press)

public book build() } }

使用(鏈式程式設計):

Builder 建造者模式

模式定義 builder模式很好地將乙個複雜物件的建立與該物件內部的各個部件的組裝分離開來。它和 abstract factory模式有相似的地方,但是abstract factory主要提供了乙個建立一些列相關或相互依賴的物件的介面,無需知道指定他們具體的類 生產者 而builder模式著重於部件...

建造者模式(Builder)

工廠類模式提供的是建立單個類的模式,而建造者模式則是將各種產品集中起來進行管理,用來建立復合物件,所謂復合物件就是指某個類具有不同的屬性,其實建造者模式就是前面抽象工廠模式和最後的test結合起來得到的。我們看一下 還和前面一樣,乙個sender介面,兩個實現類mailsender和smssende...

建造者模式(Builder)

4 建造者模式 builder 工廠類模式提供的是建立單個類的模式,而建造者模式則是將各種產品集中起來進行管理,用來建立復合物件,所謂復合物件就是指某個類具有不同的屬性,其實建造者模式就是前面抽象工廠模式和最後的test結合起來得到的。我們看一下 建造者類如下 抽象產品類,使用了模板方法模式,不同產...