Design Patterns: Solidify Your C# Application Arch
來源:互聯網
上載者:User
Design Patterns: Solidify Your C# Application Architecture with Design Patterns中文版(上篇) optimizer(翻譯)
關鍵字 設計模式 singleton strategy decorator composite state
出處 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag01/html/PATTERNS.asp
Design Patterns: Solidify Your C# Application Architecture with Design Patterns中文版(上篇)
作者:Samir Bajaj
譯者:榮耀
【譯序:C#進階文章。譯者對Samir提供的C#例子進行了簡單整理(作者提供的某些代碼在譯者的環境中無法通過編譯),並編寫了對應的C++樣本,一併置於譯註中,以便讀者比對。譯文中所有C#、C++程式調試環境均為Microsoft Visual Studio.NET 7.0 Beta2】
【概要:通過提供一個架構,設計模式可以解決應用開發中的許多問題。模式使得設計過程更加清晰高效,它特別適用於C#程式開發,因為C#是物件導向的語言。【譯註:因為設計模式的由來和出發點就是描述物件導向的(可複用的)軟體設計】現有的設計模式為你自己的類的設計提供了優秀的模板,使用模式可以縮短軟體開發週期。本文將描述幾個流行的設計模式,包括singleton、strategy、decorator、composite和state,你可以在你自己的應用中使用它們,藉此提高應用的擴充性,並使類更易於重用。】
正如任何一個老練的物件導向的軟體開發人員所瞭解的那樣,缺乏對設計模式最起碼的瞭解而來討論軟體設計架構是不可思議的。如果不是全部那也有大多數的軟體應用、工具和系統至少使用了一種甚至更多種設計模式。設計模式是一種對一套相互作用的類的描述,這些類為解決特定上下文環境中的一般性問題提供了架構。換句話說,模式為物件導向軟體開發中的特定問題提供瞭解決方案。此外,模式一般也重視限制其適應解決方案的相關約束和其它因素。類和類之間的串連和通訊以及上下文細節共同定義了一個模式,它為任何一個物件導向軟體設計中在特性和必要條件方面與之匹配的問題提供瞭解決方案。
我必須承認我是設計模式的一個熱心的支援者。自從我閱讀了Gamma、Helm、Johnson和Vlissides合著的那本創造性的著作《設計模式》以來,我就很少不用任何模式而設計軟體了。實際上,我在軟體設計的早期階段花了相當可觀的時間來定奪可和將來架構自然吻合的模式。畢竟,模式是經過時間和應用領域考驗過的對一些問題的解決方案,那些問題已經被經驗豐富的設計師、開發人員和語言專家所解決。對任何一個進行中軟體設計的人員來說,善用可加以利用的知識和專家經驗是明智的。而採用一個已被反覆證明是成功的解決方案而不是從頭髮明一個新的往往是個好主意。