2010年10月6日 星期三

設計模式(Gof) 2010/10/6
第一章 介紹模式設計
歡迎來到設計模式

一、策略模式(Strategy Pattern)
定義:
定義了演算法家族,個別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變動,不會影響到使用演算法的程式。
設計守則
找出程式中可能需要更動之處,把它們獨立出來,不要和那些不需要更動的程式碼混在一起。
換句換說,如果每次新的需求一來,都會更動到某部份的程式碼,那麼你就可以確定,這部份的程式碼需要被抽出來,和其他不需更動的程式碼有所區隔。

此守則的另一種思考:
   把會變動的部份取出並封裝起來,以便以後可以輕易地擴充此部份,而              不影響不需要更動的其他部份。

把會變動的部份取出並「封裝」起來,好讓其他部份不會受到影響。
結果如何?程式碼更動之後,出其不意的部份變得很少,系統變得更有彈性。


幾乎是每個設計模式背後的精神所在。所有的模式都提供一套方法讓「系統中的某部份改變不會影響其他部份」。

寫程式是針對介面(interface)而寫,而不是針對實踐方式而寫。
多用合成(composition),少用繼承(inheritance)。


OO基礎
抽象
封裝
多型
繼承
OO設計守則
將變動部分封裝起來

多用合成,少用繼承

針對介面寫程式,
不是針對實踐寫程式
OO設計模式
「策略模式(Strategy Pattern)」定義了演算法家族,個別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變動,不會影響到使用演算法的程式








第二章 觀察者模式
讓你的物件知悉現況
一、觀察者模式
定義了物件之間的一對多關係,如此一來,當一個物件改變狀態,其他相依者都會收到通知並自動被更新。