1. 程式人生 > 其它 >GoF的設計模式與模式 GoF的設計模式與模式

GoF的設計模式與模式 GoF的設計模式與模式

GoF的設計模式與模式

          GoF在編寫《設計模式》一書時,模式的研究才剛剛開始,PLoP也只舉行了兩屆,各種模式和模式語言還處在評審階段,對模式的形成和書寫方式還處在探索階段,因此,GoF的設計模式與現在一般意義上的模式還是有很大區別的。瞭解這些區別,有助於更好地理解設計模式的內涵。本節著重指出GoF設計模式和現在的模式理論上的區別和對理解的影響。
        GoF設計模式與模式理論的區別是前者更偏重於解決方案。認為設計模式就是解決方案並不是一點道理沒有,GoF在《設計模式》一書中承認,與亞歷山大的模式相比,他們的設計模式更偏重於解決方案(實現)的描述,而後者更偏重於問題的描述。也正是因為對方案的描述所佔的比重遠大於對問題的描述,所以在使用設計模式時,難度經常出現在無法判斷是否應該使用設計模式,或者使用哪一種設計模式上,而不是在選擇模式後的實現上。
        因此,在理解設計模式時,重點應放在每個模式解決問題的場合和使用模式需要考慮的因素上。在GoF的設計模式中,動機描述通常是一個具體的例項,需要讀者從例項理解動機中隱含的上下文和Forces。當然,給設計模式總結出抽象的上下文和Forces是非常困難的,解決這個問題的另一個方法是給更多的應用例項,使讀者可以根據自己的業務背景從相似的例項中得到啟發,從而理解其中的含義。
        這裡需要強調的是,設計模式是模式的一種,模式是一種思考問題的方式和思考結果的表現形式,由於歷史的原因,GoF的設計模式與模式理論有一定的區別,但這並不是說設計模式與模式理論有矛盾,而是在理解上,需要按照模式的思想理解設計模式中沒有顯示錶示出來的內涵。         GoF在編寫《設計模式》一書時,模式的研究才剛剛開始,PLoP也只舉行了兩屆,各種模式和模式語言還處在評審階段,對模式的形成和書寫方式還處在探索階段,因此,GoF的設計模式與現在一般意義上的模式還是有很大區別的。瞭解這些區別,有助於更好地理解設計模式的內涵。本節著重指出GoF設計模式和現在的模式理論上的區別和對理解的影響。
        GoF設計模式與模式理論的區別是前者更偏重於解決方案。認為設計模式就是解決方案並不是一點道理沒有,GoF在《設計模式》一書中承認,與亞歷山大的模式相比,他們的設計模式更偏重於解決方案(實現)的描述,而後者更偏重於問題的描述。也正是因為對方案的描述所佔的比重遠大於對問題的描述,所以在使用設計模式時,難度經常出現在無法判斷是否應該使用設計模式,或者使用哪一種設計模式上,而不是在選擇模式後的實現上。
        因此,在理解設計模式時,重點應放在每個模式解決問題的場合和使用模式需要考慮的因素上。在GoF的設計模式中,動機描述通常是一個具體的例項,需要讀者從例項理解動機中隱含的上下文和Forces。當然,給設計模式總結出抽象的上下文和Forces是非常困難的,解決這個問題的另一個方法是給更多的應用例項,使讀者可以根據自己的業務背景從相似的例項中得到啟發,從而理解其中的含義。
        這裡需要強調的是,設計模式是模式的一種,模式是一種思考問題的方式和思考結果的表現形式,由於歷史的原因,GoF的設計模式與模式理論有一定的區別,但這並不是說設計模式與模式理論有矛盾,而是在理解上,需要按照模式的思想理解設計模式中沒有顯示錶示出來的內涵。