建造者模式(builder):將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建造者模式組成uml圖
個人理解
建造者定義很通俗易懂,就是將裝配的過程和成果展示分離,過程不變,但是我可以改變材料,出來不相同的作品。
這個過程就由抽象建造者定義
實際建造者就是通過定義好的過程新增不同的材料建造不一樣的產品,每個實際建造者都帶表了一種產品
指導者就是指揮讓哪乙個實際建造者來製作
產品就不要說了,它定義了都有什麼部件
舉個例子
inte***ce builder
//二哈建立類,專門建立二哈用
class dogbuilder implements builder
@override
public
void
builddown()
public animal getproduct()
}//同理專門建立加菲貓用
class catbuilder implements builder
@override
public
void
builddown()
public animal getproduct()
}//指導者,哪個實際建立者進來就建立哪個
class director
}//產品類,我這裡是動物
class animal
public
void
setup(string up)
public string getdown()
public
void
setdown(string down)
public
void
show()
}public
class client
}
寫到這裡我突然發現建造者模式和工廠方法模式有點類似,因為從增加新的產品方式來看,感覺用誰都差不多,不過查詢一些資料後,來看:
工廠方法模式針對的是產品本身並不很複雜,而建造者模式針對的則是建立符合的產品,可以很複雜,模組可以很多。
因此我覺得選哪個到時候還是要看實際的產品問題。
設計思想學習 策略模式
首先來看一下定義 策略模式 strategy 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換 策略模式主要有三點組成 舉個栗子 我中午想吃好吃的,但可以吃的東西有很多種 烤鴨 龍蝦 帝王蟹,但是不管吃啥,都是吃,所有就有了抽象策略角色 inte ce dine 下面這些是具體吃啥,也...
設計思想學習 外觀模式
記得有一次,我們一起去了乙個別墅轟趴,那時候大家都去玩自己想玩的事情,大廳開燈是必須的,看電影的要去小房間開投影儀幕布,玩遊戲的要開電腦或者xbox等等。最後玩的筋疲力盡了還要乙個個去把他們關掉,那時候就在想如果有乙個按鈕關掉或者開啟所有多好。直到今天看了外觀模式才知道,那個想法就是乙個外觀模式的思...
設計思想學習 組合模式
本來這篇是要元旦發出來的,可惜玩的太嗨了,沒有時間發,只能抽空看看知識點。祝大家新年新氣象,身心健康,心想事成。相信只要玩過電腦的人都對下面的這張圖不會陌生 這結構想必大家也都熟悉,就是樹狀結構 其實這也是組合模式的定義 組合模式 composite 將物件組合成樹形結構以表示 部分 整體 的層次結...