建造者模式(Builder)

2021-08-21 22:39:29 字數 1438 閱讀 8734

4、建造者模式(builder)

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

我們看一下**:建造者類如下:

//抽象產品類,使用了模板方法模式,不同產品有不同的「組成部分part」

abstract class abstractproduct 

} //具體的產品a、b,不同產品實現了不同的「組成部分part」

class concreteproducta extends abstractproduct

protected void part02()

protected void part03()

} class concreteproductb extends abstractproduct

protected void part02()

protected void part03()

}

//抽象建造者,制定每一種產品應該實現的組合方式buildpart()和生產buildproduct()的標準

abstract class abstractbuilder
/*

* 具體建造者,如果對於預設產品(即當呼叫抽象產品中的defaultproduct()方法)不滿意時,

* 可以不呼叫它來獲得產品,而是使用具體的建造者來改變產品的生產組裝方式,以得到不同的產品

*/

class concretebuildera extends abstractbuilder 

public abstractproduct buildproduct()

} class concretebuilderb extends abstractbuilder

public abstractproduct buildproduct()

}

//導演類,預先持有各個產品的建造者,為需要不同於預設產品的使用者提供不同的組裝方式

class director 

public abstractproduct getproductb()

}

//測試類

public class client  

}

從這點看出,建造者模式將很多功能整合到乙個類裡,這個類可以創造出比較複雜的東西。所以與工程模式的區別就是:工廠模式關注的是建立單個產品,而建造者模式則關注建立符合物件,多個部分。因此,是選擇工廠模式還是建造者模式,依實際情況而定。

Builder 建造者模式

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

建造者模式(Builder)

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

建造者模式 Builder

名字 建造者模式 builder 意圖 b 將乙個複雜的構建與其表示相分離 b 得同樣的構建過程可以建立不同的表示.動機 軟體系統中,有時候面臨著 乙個複雜物件 的建立工作,其通常由各個部分的子物件用一定的演算法構成 由於需求的變化,這個複雜物件的各個部分經常面臨劇烈變化,但將其組合在一起的演算法卻...