2016年11月13日 星期日

設計模式九:建造者模式(Builder)

定義:將一個複雜物件的構建與該物件的表示(representations)分離,使得同樣的構建過程可以建立不同的表示。(P.S. 這裏的表示應該是指物件各個不同的參數。)

Abstract factory and factory patterns are designed for polymorphism. builder pattern is not. The builder pattern uses another object, a builder, that receives each initialization parameter step by step and then returns the resulting constructed object at once.

就像去餐廳點餐一樣,客人只要向服務生這個介面下要求就好,不必參與後面餐點的複雜「建造」過程。


設計模式八:外觀模式(Facade)

定義:為子系統中的一「組」介面提供一「個」一致的介面,此模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。

這似乎在一般的refactor中都會自然發生的結果,因為要減少程式碼,將重覆使用子類別的程式集合起來,自然就形成了一個新的介面。要不斷利用這些子類別時,透過這個新的介面,就可以減少程式碼、使用和維護起來也更容易。

那麼,和原型模式不同的地方是?一個著眼在物件的產生,另一個是在提供介面。這個理解是正確的嗎?