2010-11-12 86 views
31

我很好奇,領域驅動設計和模型驅動架構之間有什麼區別?我有他們有某些相似之處的印象。域驅動設計vs模型驅動架構

你能開導我嗎?

感謝

+0

如果您可以爲您已完成的研究提供一些背景知識,它可能會幫助人們回答這個問題。 – 2010-11-12 16:34:18

回答

26

不要不同意上面的大多數,雖然它可能值得擴展一點。

DDD中最重要的概念是關注問題領域。把技術困惑放在一邊,主要集中在建模你想要解決的問題上。因此,將Ajax,ORM,數據庫,框架等置於後臺,並首先確保您擁有完整,準確的問題模型。 (當然,您仍然需要架構組件 - 但它們明確地服從模型)。 DDD將此稱爲「無處不在的語言」 - 這是一種以領域專家和開發人員所使用和理解的術語表達的模型。一個模型,其中類的名稱,方法等來自問題域。

DDD並未強制要求/如何/您如何捕捉該模型,儘管本書暗示使用OO語言來完成此操作。

MDA共享的問題領域相同的概念(PIM,平臺無關模型)。與DDD相反,它建議使用UML創建該模型。但意圖是一樣的:理解問題領域而不用(軟件)架構問題玷污它。

MDA的PSM(平臺特定模型)有點類似於在DDD中應用體系結構模式(例如聚集,存儲庫等)。再次 - 儘管具體情況不同 - 兩者都旨在解決將「純」問題域模型轉換爲完整軟件系統的問題。

所以總結,我會說,他們是在兩個方面相似:

  1. 模型的核心地位(如@Rui說) - 特別是/域/模型。
  2. 將架構模式應用於模型以實現目標系統。

hth。

4

兩個領域驅動設計(DDD)和模型驅動架構(MDA)的根是模型驅動工程(MDE),也被稱爲模型驅動的軟件開發(MDSD)如果僅限於軟件開發領域。參見Wikipedia:http://en.wikipedia.org/wiki/Model-driven_development

MDE下的所有方法都有一個共同點:模型。這個模型如何實現取決於特定的MDE風格。

MDA被認爲過於複雜。一些人認爲DDD太抽象了。我個人最喜歡的MDE實現是DSM和ABSE(未在維基百科文章中列出)。

3

DDD即將從商業角度接近軟件解決方案,旨在使設計儘可能地接近現實世界。這比藝術更像是一門藝術。

MDA解決了不同的一系列問題。更多細節在這裏:http://xml.coverpages.org/OMG-MDAFAQfinal1.pdf

+0

工程是一門藝術:) – 2015-06-26 06:32:36