設計模式 建造者模式

2021-09-23 22:00:20 字數 1417 閱讀 3418

建造者模式屬於建立型設計模式,它還是為了用來建立乙個物件。

首先來看看它的定義:

然後我們來看看它的uml圖:

在這裡我們繼續強調為什麼會有乙個builder抽象介面,因為根據依賴倒轉原則,我們應該面向介面程式設計。

建造模式就相當於搭積木,你想得到乙個具體的東西,比如乙個積木大樓,那麼你就要一部分一部分的先建造然後整合在一起稱為乙個積木大樓。

在建造模式使用的時候,我們應該知道最後我們需要的例項是由哪些部分(product)構成的

1.具體組成部分

//積木大樓的地基

class base()

//積木大樓的主體

class body()

2.建造者抽象介面,用於在使用端呼叫(依賴倒轉原則)

//建造者介面

inte***ce builder()

3.具體建造類,用於實現

//具體建造物件,用來進行積木大樓的構建

class concretebuilder extends builder }}

//積木大樓由地基於主體構成

//建造具體的地基

buildbase()

//建造具體的主體

buildbody()

}

4.呼叫建造物件

//使用者

//當你需要建造乙個積木小船的時候,寫乙個具體的小船建造類就可以了

builder builder = new concretebuilder();//new concretebuilderboat();

builder.getbuilding();

簡單的來說,當你想構建的物件十分複雜,但是其通常由各個部分的子物件用一定的演算法構成;由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。這時候你將應該用建造模式了。

當然建造模式有缺點,就是1、產品必須有共同點,範圍有限制。 2、如內部變化複雜,會有很多的建造類。就像上面搭積木大樓,大樓的外形可以各有不同,你只需要改變base與body即可,建造者與使用者是無需改**的,因為大樓的組成是固定的,但是你想要建造乙個積木小船就需要重新寫乙個建造類,使用者也需要改**。

總之,建造模式就是乙個從部分到整體搭積木的過程,當你元件的物件十分複雜,且可以由部分組成的時候,就可以使用建造者模式了。

設計模式 建造者模式

在gof的23種設計模式中對builder pattern的定義是 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。從程式角度來說,就是在基類定義某種事物建立的過程或業務流程,在子類進行重寫或是使用基類方法。這樣建立出來的例項不會因為過程或流程的丟失而使業務失敗。舉例來說,...

設計模式建造者模式

今天看了乙個設計模式。總結下,以免忘了。如何引入建造者模式的呢?作者舉了個例子。建造小人。當然需要 頭,左手,右手,左腳,右腳,軀幹。建造的過程使用 使用類裡面的方法就行了。但是如果需要乙個胖的小人,乙個瘦的小人呢?就需要重新構造乙個胖人類,乙個瘦人類。當然 使用者還需要自己處理構造的過程。這樣 就...

設計模式 建造者模式

定義 將乙個複雜的物件的構建與它的表示分離,是的同樣的構建過程可以建立不同的表示。包括的要素 1 產品類 2 抽象建造者或者介面 3 建造者 4 導演類 建造者模式的優點 首先,建造者模式的封裝很好,使用建造者模式可以有效地封裝變化,注意在使用建造者模式的場景中,一般產品類和建造者介面是比較穩定的,...