2008-09-24 93 views
2

經典的「設計模式:可重用的面向對象軟件的元素」實際上引入了我們大多數人的設計模式的想法。設計模式的分類

但是現在我發現了一本書,比如Martin Fowler的「企業應用架構模式」(POEA),在日常工作中更加有用。

在與其他開發人員的討論中,許多人認爲.NET這樣的框架正在慢慢開始提供GOF書中的許多模式,爲什麼要重新發明輪子?

似乎很多開發人員認爲GOF書籍是唯一值得關注設計模式的參考書。所以他們的邏輯是因爲框架(.NET等)爲我們提供了許多GOF模式,模式已經看到他們的一天,並且不再那麼重要。

當我提到POEA中描述的模式時,出乎意料的(至少對我來說),我經常遇到空洞的目光。 POEA證明模式不僅僅是Interator,Singletons,Commands等。我也會說GOF中的模式實際上只是一個不同的模式「範疇」,適用於不同的(不重疊的)層次的設計,比那些在POEA。

那麼,您的開發中還有哪些其他「類別」的模式?這些模式適用於什麼級別的設計?他們通常在開發過程的哪個階段使用?有這些模式的書籍或參考嗎? Ward's wiki上的

+0

福勒的企業模式的書,我的常見縮寫s PEAA – jop 2008-09-24 06:13:26

回答

6

CategoryPatterns包含模式的分類列表。

前三個是GoF的模式

  • 創力
  • 結構
  • 行爲

然後有問題的具體問題

  • 安全
  • 併發
  • 實時

福勒的模式是企業應用模式。也有Enterprise Integration Patterns。 UI模式也存在..等等...

0

GoF模式也嚴格適用於代碼只。福勒的模式不僅適用於代碼,也適用於數據和系統組件的排列和互連方式。

此外,如果某些模式已經在編程語言中烘焙過,則不需要這些模式。在某些語言中,它們只是成語。實際上,人們認爲設計模式是編程語言不足的標誌。

2

我只是添加一個答案,因爲我有這個問題的答案有些不同。據POSA(在面向模式的軟件架構系列圖書),有三個層次的模式:

  • 架構模式(如圖層,MVC,P2P
  • 設計模式(如GOF模式
  • 成語(如特定語言模式,如平普爾,RAII在C++