建造者模式(Builder Pattern):將一個復雜對象的構建與它的表示分離餐曼,使得同樣的構建過程可以創(chuàng)建不同的表示辐赞。
它關注如何一步一步創(chuàng)建一個的復雜對象,不同的具體建造者定義了不同的創(chuàng)建過程砾医,且具體建造者相互獨立泼掠,增加新的建造者非常方便怔软,無須修改已有代碼,系統(tǒng)具有較好的擴展性择镇。
建造者模式包括四個角色:
- 產(chǎn)品類(Product):它是被構建的復雜對象爽雄,包含多個組成部件,具體建造者 ConcreteBuilder 創(chuàng)建該產(chǎn)品沐鼠。
-
抽象建造者(Builder):引入抽象建造者的目的,是為了將建造的具體過程交與它的子類來實現(xiàn)叹谁。
這樣更容易擴展饲梭。一般至少會有兩個抽象方法,一個用來建造產(chǎn)品buildPartA()
焰檩,一個是用來返回產(chǎn)品Product getProduct()
憔涉。 -
建造者(ConcreteBuilder):實現(xiàn)具體的創(chuàng)建任務,具體來說一般是兩項任務:組建產(chǎn)品
buildPartA()
析苫;返回組建好的產(chǎn)品Product getProduct()
兜叨。 - 導演類(Director):負責調用適當?shù)慕ㄔ煺?Builder 來組建產(chǎn)品,導演類一般不與產(chǎn)品類發(fā)生依賴關系衩侥,與導演類直接交互的是建造者類国旷。
類圖如下:
引用:
建造者模式