【模式語言管理參考資料】從面向對象到模

【模式語言管理參考資料】從面向對象到模

ID:19320183

大小:33.50 KB

頁數(shù):6頁

時間:2018-10-01

【模式語言管理參考資料】從面向對象到模_第1頁
【模式語言管理參考資料】從面向對象到模_第2頁
【模式語言管理參考資料】從面向對象到模_第3頁
【模式語言管理參考資料】從面向對象到模_第4頁
【模式語言管理參考資料】從面向對象到模_第5頁
資源描述:

《【模式語言管理參考資料】從面向對象到?!酚蓵T上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、從面向對象到模式再到真正的面向對象AlanShalloway著透明譯都說他山之石可以攻玉,今天閱讀這篇文章,對模式語言管理與和諧生產(chǎn)方式的研究的啟發(fā)的確非常大,“面向對象”與“模式”的關系,正是如同和諧生產(chǎn)方式原理與模式語言管理的關系。文中的很多說明可以直接運用到模式語言管理上來(我在文中作了加粗標識)?!獜埼髡瘢?010-8-13(譯序:DesignPatternsExplained:ANewPerspectiveonObject-OrientedDesign一書的前言部分。通過,讀者可以大

2、概了解學習設計模式的過程和效果。同時,謙虛謹慎的態(tài)度也是非常值得我們中國軟件開發(fā)者學習的。)  這本書的很多地方都復述了我自己學習設計模式的經(jīng)驗。在學習設計模式之前,我認為自己理所當然是面向對象分析和設計的專家。我曾經(jīng)為各種行業(yè)的客戶做過一些還算給人深刻印象的設計和實現(xiàn)。我會使用C++并且已經(jīng)開始學習JAVA。我的代碼中的對象格式優(yōu)美封裝緊密。我可以在繼承體系中設計優(yōu)秀的數(shù)據(jù)抽象。我想我已經(jīng)懂得面向對象了。mda.com  現(xiàn)在回頭看看,我發(fā)現(xiàn)那時其實我還根本不知道面向對象設計的全部能力,盡管我

3、一直按照專家建議的方式來做。直到我開始學習設計模式,我的面向對象設計能力才得到了擴展和深化。學習設計模式使我成為了一個更好的設計者,甚至是我還沒有直接使用那些模式的時候。  我從1996年開始學習設計模式。當時我正在西北部一家大型航天公司擔任C++/面向對象設計顧問。有幾個人勸說我領導一個設計模式學習組。正是在那里我遇到了本書的另一個JimScott。在那個學習組中發(fā)生了幾件有趣的事情。首先,我開始對設計模式著迷。我可以把自己的設計和其他更有經(jīng)驗的人的設計相比較,我愛上了這種感覺。另一方面,我發(fā)

4、現(xiàn)我并沒有完全做到"對接口做設計",也沒有隨時注意"一個對象是否可以在不知道另外對象的類型的情況下使用另外對象"。同時我注意到,那些面向對象的初學者--通常他們被認為過早開始學習設計模式--從這個學習組得到的收益與那些面向對象的專家不相上下。設計模式向學習者展現(xiàn)出優(yōu)秀的面向對象設計實例并闡述基本的面向對象設計原則,而這些使學習者的設計更快地成熟起來。在整個學習進程結束之后,我確信:設計模式,這是面向對象設計被發(fā)明之后軟件設計中最好的東西。  但是,看看那個時候我自己的工作,我發(fā)現(xiàn)我根本還沒有在自

5、己寫的代碼中結合任何一個設計模式?! ‘敃r我只是認為自己還沒有學到足夠的設計模式,還需要學習更多。那時候,我只知道六個設計模式。然后我可以說是得到了頓悟。我在一個項目中擔任面向對象設計顧問,并需要為這個項目創(chuàng)建一個高層設計。這個項目的領導人極其聰明,但在面向對象設計領域,他可以說是一個新手?! ∵@個問題本身并不困難,但需要非常注意確保代碼容易維護。按照慣例,在看過問題兩分鐘之后,我便有了一個設計——采用了我常用的數(shù)據(jù)抽象的途徑。很不幸的是,很顯然這不會是一個好的設計。簡單的數(shù)據(jù)抽象已經(jīng)讓我嘗到過

6、失敗的滋味。我必須找到一些更好的設計思路?! 蓚€小時過去了。在使用了我所知道的所有設計技術之后,情況仍然沒有好轉。我的設計基本上都還是和從前一樣。而最讓我感覺受挫的是,我知道一定有一個更好的設計,但我就是找不到它。更具諷刺意義的是,我甚至還知道四個設計模式就"生活"在我的問題中,但我看不出應該如何使用它們。在這里,我,一個被認為是面向對象設計專家的人,被一個簡單的問題困住了!  我實在覺得很受挫,于是我停了下來,開始繞墻行走以清醒頭腦,并告訴自己:至少10分鐘里我不再想這個問題。呵呵,30秒之

7、后,我又開始想它了!但我獲得了一種領悟并完全改變了我對設計模式的看法:設計模式無法作為獨立的條款使用;我應該把設計模式放在一起使用。  模式是應該被結合在一起來共同解決一個問題的?! ∫郧拔以?jīng)聽到過這句話,但那時我并沒有真正理解它。因為軟件開發(fā)中的模式往往被介紹為"設計模式",所以我總是在"模式最主要的貢獻是在設計階段"的假設下努力。我的想法是:在設計世界里,模式就好象是類之間優(yōu)美的聯(lián)系。然后,我閱讀了ChristopherAlexander那本令人驚訝的書--TheTimelessWayof

8、Building。我學到了:模式存在在所有的階段--分析、設計以及實現(xiàn)--之中。Alexander在書中討論了如何使用模式來幫助理解(乃至描述)問題領域,而不是僅僅在理解了問題領域后使用模式來創(chuàng)建一個設計?! ∥业腻e誤是:我嘗試先創(chuàng)建問題領域中的類,然后將這些類縫合起來形成最終的系統(tǒng)--lexander把這樣的過程稱為"一個壞主意"。我從來沒有問過自己:我是否擁有正確的類?僅僅因為這些類看起來如此正確、如此明顯。我擁有的,是在我開始分析時立刻進入了我的腦海的類,是我們的老師告訴我們應該在系統(tǒng)的描

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。