2017-04-26 90 views
1

我正在尋找描述設計模式(或反模式)的術語,該設計模式描述系統何時按泛化而非業務條款進行組織。域驅動設計的相反之處是什麼?

例如,考慮的領域驅動例如:

Customer.Load 
Account.Load 
Orders.Load 

VS:

Load.LoadCustomers 
Load.LoadAccounts 
Load.LoadOrders 

另一個例子可以在這裏看到在MVC: ASP.NET MVC - putting controller & associated views in the same folder?

雖然更多關於組織VS設計,來自pettys IMO的評論是正確的:

認識到這裏系統有兩個維度, 架構和業務。原始海報想要在一個地方保留處理某個商業關注的所有零件。默認的ASP.NET MVC佈局將單個業務關注點分散在 之外,因此架構類似的類可以保持在一起。 這兩種選擇,我寧願有事情由企業 關注比通過分組架構關注

只有一種辦法身體組織項目之間。 OP要求按域進行組織,Pettys將默認組織描述爲「架構上」組織的。但是,我更好地分類是這個「建築」組織。

在我看來,這是面向方面的設計,即設計偏向於關於一般過程的分類而不是業務的具體條款。我不打算將此與面向方面的編程相混淆,它可以補充DDD,但是它令人困惑,這就是爲什麼我想知道是否有更好的名字。

+0

你也許可以稱之爲「面向服務架構」(顯然有負面的含義)。你的第二個例子強調了什麼,從而忽略了事情的原因。 – GhostCat

+0

操作驅動設計(ODD)? –

+0

我從來沒有聽說過這個架構的名稱。但它絕對似乎支持程序編程而不是OOP。我相信我在幾篇博客文章中看到了一些類似的有用模式,聲稱自己是軟件工程的聖盃 – djvuk

回答

0

系統的組織方式有很多種概括。據我所知,在DDD出版時,大約有2003年的一些流行趨勢。

  • 表驅動或數據驅動的設計,通常意味着從一組特定的關係數據中派生出您的實現。
  • 模型驅動的設計,通常意味着從UML圖派生出您的實現。
  • 配置驅動設計,通常意味着將盡可能多的實現轉換爲XML文件。

我確定還有更多的,你可以說他們都更關注系統的架構而不是它的領域。回想起來,你可以考慮將它們中的一些或全部作爲反模式。用尼爾福特的話說,

今天的最佳做法是明天的反模式。

參考:https://visualstudiomagazine.com/articles/2015/07/01/domain-driven-design.aspx

+0

我喜歡這個引用;) –

+0

這促使我嘗試匹配已知的反模式: https://en.wikipedia.org/wiki/Anti-pattern#Software_design 這是一種「BaseBean」理念。 –