設計模式 9 建造者模式

2021-08-09 03:55:49 字數 1000 閱讀 5836

在紙上畫兩個人,初步**:

public class main 

}

缺點:太過依賴於細節,如果某個步驟缺少了(比如缺少了一條腿),那麼畫不出完整的人,不符合依賴倒轉原則:應該依賴於抽象

改良後的**:

public class main 

}class boybuilder

}class manbuilder

}

上面**把人的構建步驟封裝,但這還是不能杜絕編寫封裝類時漏某個步驟的危險,所以,最好的方法是寫乙個規定:凡是畫人,都必須有頭、身、手、腳,可以採用建造者模式:

public class main 

}//抽象出來的介面,用於規範實現它的建造器必須實現的步驟,這樣即使寫漏額步驟,編譯器也不給編譯通過的

inte***ce personbuilder

class boybuilder implements personbuilder

@override

public void buildbody()

@override

public void buildled()

@override

public void buildhand()

}class manbuilder implements personbuilder

@override

public void buildbody()

@override

public void buildled()

@override

public void buildhand()

}//指揮者類,用於控制整個建造過程,也用來隔離使用者與建造過程之間的關聯

class director

public void createperson()

}

9 建造者模式

定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。四個要素 建造者模式的優點 首先,建造者模式的封裝性很好。使用建造者模式可以有效的封裝變化,在使用建造者模式的場景中,一般產品類和建造者類是比較穩定的,因此,將主要的業務邏輯封裝在導演類中對整體而言可以取得比較好的穩定性...

設計模式 建造者模式

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

設計模式建造者模式

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