建造者模式(Builder Pattern):將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
它關注如何一步一步創建一個的復雜對象,不同的具體建造者定義了不同的創建過程,且具體建造者相互獨立,增加新的建造者非常方便,無須修改已有代碼,系統具有較好的擴展性。
建造者模式包括四個角色:
- 產品類(Product):它是被構建的復雜對象,包含多個組成部件,具體建造者 ConcreteBuilder 創建該產品。
-
抽象建造者(Builder):引入抽象建造者的目的,是為了將建造的具體過程交與它的子類來實現。
這樣更容易擴展。一般至少會有兩個抽象方法,一個用來建造產品buildPartA()
,一個是用來返回產品Product getProduct()
。 -
建造者(ConcreteBuilder):實現具體的創建任務,具體來說一般是兩項任務:組建產品
buildPartA()
;返回組建好的產品Product getProduct()
。 - 導演類(Director):負責調用適當的建造者 Builder 來組建產品,導演類一般不與產品類發生依賴關系,與導演類直接交互的是建造者類。
類圖如下:
建造者模式 Builder
引用:
建造者模式