?? 187.txt
字號:
日月光華 -- SE精華區文章閱讀
--------------------------------------------------------------------------------
發信人: jiachong (甲蟲), 信區: SE
標 題: [轉載]4.設計模式 jiachong
發信站: 日月光華 (2003年04月09日12:48:00 星期三), 站內信件
【 以下文字轉載自 SE 討論區 】
【 原文由 jiachong 所發表 】
軟件工程之——設計模式篇
Christopher Alexander 在《建筑學的永恒方法》中,嚴謹的定義了術
語——模式。
1.每個模式是一個由三部分組成的規則,它表示了一個特定環境、一個
問題和一個解決方案之間的關系。
2.作為語言的一個元素,一個模式是一個說明,它說明了如何使用這個
空間配置,不斷求解給定的強制條件體系,只要環境是和它相關的。
3.簡單的說,模式是在同一時間里發生在世界上的一件事物和如何創建
這個事務以及我們何時必須創建它的規則。它既是一個過程,又是一個事物;
既是一個活生生的事務的描述,又是產生那個事務的過程描述。
模式關注著在一個特定的設計環境中出現的重復設計問題,并為該問題
提供一個通用的解決方案,模式記錄著已經成功實踐的設計經驗,是一種設
計抽象技術,推動了軟件復用技術在更高抽象粒度上的發展,同時大大提高
了軟件質量屬性。例如:Java語言的實現機制中,就廣泛地采用了一些著名
的設計模式。
根據模式的抽象的粒度的從大到小,軟件模式一般可以分為:構架模式、
設計模式和慣用模式三種。
構架模式描述了軟件的系統構架級別上的組織方案,著名的構架模式有
層模式、管道過濾器模式,模型/視圖/控制模式,代理模式,客戶機/服務器
模式等等。
設計模式是一個組件粒度上、中等規模的模式,它不會影響整個軟件構
架,但是對于子系統/組件的質量有著很大的影響。著名的設計模式有:代理
模式,策略模式,工廠模式,組合模式等等。
慣用模式則用來解決某種程序設計語言中具體實現的模式。如:引用計
數,單件模式等等。
四位著名的領軍人物——模式團體的“四人幫”Erich Gamma, Richard
Helm,Ralph Johnson和John Vlissides為模式在軟件工程的重要地位和取得
廣泛共識做出了巨大的貢獻。此后,Robert Martin, Peter Coad也在致力于
模式方面的工作。如今模式的研究已經有了豐碩的成果,大家可以看到前人
已經總結的大量的成熟的設計模式,并且可以方便的將這些模式與模式理念
應用在各種軟件產品中。我們可以這樣斷定,一位軟件開發人員,如果不懂
模式并且在開發過程中不知道將模式合理應用在程序中的話,這位開發人員
的程序將永遠不能登入大雅之堂。
--gill整理
--
這個世界總會有點不公正
但是我們總能用心去平衡
※來源:·日月光華 bbs.fudan.edu.cn·FROM:[甲蟲窩]
※ 修改:·jiachong 於 03月04日20:51:42 修改本文·[FROM: 218.79.59.90]
--
※ 轉載:·日月光華 bbs.fudan.edu.cn·[FROM: 61.170.202.109]
--------------------------------------------------------------------------------
[返回上一頁] [本討論區]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -