怎樣應用設計模式

   

Erich Gamma的一次談話,第一部分,by Bill Venners2005-5-23

摘要:

在開發者中,設計時,採用設計模式是一種比較流行的方法。但是用什麼比較合適的方法去考慮設計模式?在這次訪談中,《設計模式》這本書的作者Erich Gamma,和Bill Venners討論用正確的方法去思考好使用設計模式。


設計模式的真實價值

Bill VennersBruce Eckel和我在教授設計課程的時候,我們發現人們真的想知道 Gang of FourGoF)模式。設計模式的市場是很大的。

Erich Gamma:仍然,但十年後呢?

Bill Venners:是的。人們想知道模式。我懷疑模式是一個通用語。關於模式,我想揭開這個欺詐去找出什麼是人們應該知道的。他們應該以什麼樣的態度去應對模式?人們怎樣才能使用設計模式去完成好一項工作?什麼是最真實的價值。

Erich Gamma:我認爲整個模式能幫助人們以面向對象的方法去思考:你怎樣利用多態,結構設計,團對,平衡責任,提供能插入的行爲。模式超越了在對象中應用圖形形狀這樣的例子,在形狀類中的繼承和使用一些多態的繪畫方法。當你懂得設計模式的時候,你才真正的學習了多態。所以設計模式是一種學習面向對象和設計的好的方法。

以上所說的,每一個獨立的模式都有不同的特徵,在一些地方你需要更靈活的模式,或者需要形成一種抽象的事物,或者使你的代碼變少。這就是在一個大系統中真正的大問題。你怎樣維護好你的層次?你怎樣避免循環依賴?GoF模式提供很少的工具去幫你解決這些問題。他們不是用來提供合適的解決方案,它是用來解釋權衡關係的。即使模式是從具體使用中抽象出來的,它們也提供給你可實現的線索的價值。我的觀點是,事實上,模式是可實現的,那才體現了它們的價值。

模式是從許多有經驗的專家中提取出來的。他們能夠讓你重複一個成功的設計。你可以站在專家的肩膀上,而不必去重新開始。然而,模式能夠使許多實現變種,你仍然應該保持清醒的頭腦。模式提供給你設計結構的名字,阻擋了他們提供給你一個詞彙去描述和討論一個特殊的設計。

另外一個問題就是我們怎樣教授模式。並非我真正知道你應該做什麼,但是我認爲你不應該做什麼,僅僅是進行分類和列舉這23種設計模式。這種方法不會帶來任何東西。你應該感覺到設計模式的不足之處。我猜想你只是評價一個模式,而沒有感覺到模式帶來的痛苦。
......to be continue
本文來自http://www.artima.com/lejava/articles/gammadp.html
我嘗試着進行翻譯,著作權歸by Bill Venners

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