《設計模式》言簡意賅,是本很好的參考書,值得反復咀嚼與推敲!我沒讀過《設計模式精解》,聽說是本很好的設計模式入門教材,同類的很多,但在GOF書的面前都成了“偽經”。我沒有貶低的意思,它們的價值也是很大的,輔以實例有助于理解和運用。
這次翻開《設計模式》,第一個讓我感興趣的是Facade模式!因為在設計多層應用系統時,各層之間的合作關系是比較復雜的,Facade模式就是幫助減弱各層之間耦合度的解決方案。因為它能為子系統中的一組接口提供一致的界面(更高層的接口),這個接口使得子系統更加容易使用。這個模式理解起來非常的簡單,現實生活也有太多的例子,像各企事業單位都有信仿辦公室,它給外部提供一個簡單高效的窗口!你可能會想:我們可以越過它嗎?現實生活中可以走后門兒,那Facade模式是不是也是這樣呢?沒錯,Facade對外沒有隱藏子系統提供的接口,外部對象可以越過它而直調用子系統提供的接口。那你可能會問:這還有什么意義呢?因為Facade模式提供易用性的同時沒有限制通用性,當然這種情況你得權衡!應該提供盡量多的高層接口供客戶使用。這樣可以保證對外隱藏的子系統實現的變化更加容易!Delphi的VCL也有例子,在RemoteDataModule中我們就可以定義一些接口,供客戶系統調用!它是個結構型模式,在框架中處理各層之間的關系時應該是個常用的模式。
我不想為這個模式寫個實例了,因為它的主要應用是在分層系統中,小例子有為模式而模式之嫌!我正準備為Delphi三層系統的開發設計一個參照框架(為什么是參照呢?因為我還做不到通用),里面將有Facade模式的身影!
除了在設計開始時有考慮解決方案,可更多的時候我們不能應對所有未來出現的情況,更何況對于沒有經驗的設計人員。找到設計模式為我們提供的解決方案后,下一步是代碼實現的問題!將現有代碼根據模式改造成好的設計需要方法,這就是重構!它是一門技術,現在的IDE大多有提供,設計模式為重構提供了目標(引自GOF)。我們也應該學習它!
文章來源于領測軟件測試網 http://www.kjueaiud.com/