Template Method模式與Strategy模式

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->


   在面向對象系統的分析與設計過程中經常會遇到這樣一種情況:對於某一個業務邏輯(算法實現)在不同的對象中有不同的細節實現,但是邏輯(算法)的框架(或通用的應用算法)是相同的。Template Method提供了這種情況的一個實現框架。


   Template Method
模式是採用繼承的方式實現這一點:將邏輯(算法)框架放在抽象基類中,並定義好細節的接口,子類中實現細節。

 

   Strategy模式解決的是和Template Method模式類似的問題,但是Strategy模式是將邏輯(算法)封裝到一個類中,並採取組合(委託)的方式解決這個問題。

 

   解決這個問題可以採取兩種模式來解決,一是Template模式,二是Strategy模式。

   Template Method
模式獲得一種反向控制結構效果,這也是面向對象系統的分析和設計中一個原則----DIP(依賴倒置:Dependency Inversion Principles。其含義就是父類調用子類的操作(高層模塊調用低層模塊的操作),低層模塊實現高層模塊聲明的接口。這樣控制權在父類(高層模塊),低層模塊反而要依賴高層模塊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章