建造者模式
設計模式主要分爲三類:創建型、結構型、行爲型
1、什麼是建造者模式
創建與表示分離,同樣的創建過程可以有不同的表現。指將一個複雜對象的構造與它的表示分離,使同樣的構建過程可以創建不同的表示。它是將一個複雜的對象分解爲多個簡單的對象,然後一步一步構建而成。它將變與不變相分離,即產品的組成部分是不變的,但每一部分是可以靈活選擇的。
2、組成部分
產品角色、抽象建造者、具體建造者、指揮者。
3、優勢與缺點
優點:用戶可以控制創建過程,對創建過程逐步的細化,對需要創建對象的屬性具有選擇性。
缺點:限制了使用範圍。產品的組成部分必須一樣;產品發生變化,建造者需要修改。
4、適用場景
- 相同的方法,不同的執行順序,產生不同的結果。
- 多個部件或零件,都可以裝配到一個對象中,但是產生的結果又不相同。
- 產品類非常複雜,或者產品類中不同的調用順序產生不同的作用。
- 初始化一個對象特別複雜,參數多,而且很多參數都具有默認值。
5、與工廠模式的對比
-
建造者模式更加註重方法的調用順序,工廠模式注重創建對象。
-
創建對象的力度不同。建造者模式創建複雜的對象,由各種複雜的部件組成,工廠模式創建出來的對象都一樣。
-
側重點不同。工廠模式只需要把對象創建出來就可以了,而建造者模式不僅要創建出對象,還要知道對象由哪些部件組成。
-
建造者模式根據根據建造過程中的順序不一樣,最終對象部件組成也不一樣。