我有以下Onion Architecture
框架。與洋蔥架構DDD有界上下文
Domain
Entities
- 我的域實體Interfaces
- 我的域接口Services
- 對於我的域名服務
Infrastructure
Data
- 對於Fluent NHibernate
持久Interfaces
- 對基礎設施的接口Logging
- 在登錄的情況下只是一個接口,我想我的日誌庫轉出到別的東西。Dependency Resolution
- 我的IoC
註冊大部分都在這裏。
Services
Interfaces
- 應用服務接口進入這裏,他們將在UI
項目得到實施。
Tests
Infrastructure Tests
- 出於測試的基礎設施服務等Domain Tests
- 用於測試域模型和服務
Web
UI
- 用戶界面項目中,我實現應用服務,用戶界面等...
隨着Domain Driven Development
人會識別Bounded Contexts
。大多數互聯網上的文獻都指出,每個Bounded Context
都需要抽象到他們自己的項目或名稱空間中。
- 是我的方法不正確,然後對具有所有我在一個項目和
Domain Models
我在另一個項目Domain Services
呢?在不同的命名空間或項目中沒有不同的有界上下文是否真的很重要? - 如果您有使用我
Bounded Context A
一個Model A
,但Bounded Context B
,Bounded Context C
等也需要使用完全相同的Model A
,你允許他們使用的是完全相同的模型,還是你創建的每個Bounded Context
新模式?
我是DDD的新手,所以很抱歉,如果這個問題是一個愚蠢的問題。如果我提出一個問題並作爲答案得到一個好的解釋,我發現自己更好地理解了一些東西。
任何幫助將不勝感激。
是的,我肯定會創建3個不同的模型。 BC 1,2和3可能在「Model A」背後共享相同的概念,但它將用於應用程序的不同部分。繪製一個簡單的[上下文映射](http://www.infoq.com/articles/ddd-contextmapping)將幫助您可視化模型交互以及BC之間發生的事情。 – MaxSC
謝謝你現在的解釋。只是在這個問題上有一個問題,持久性與3個'有界的上下文'中的'Model A'相關,你會有3個不同的映射文件,將每個上下文模型綁定到它自己的表,還是有1個映射文件? –
好吧,我也會用3個不同的映射文件。想想_Customer_的概念。根據上下文,它可能是_prospective customer_,_customer_或_client_。這三款車型有着相同的想法,但絕對不會共享相同的屬性。沒有好的獨特模型,沒有典範模型。 DDD使我們有能力創建儘可能多的模型,因爲我們有不同的環境。但他們顯然會與模型通過上下文共享相同的ID。 – MaxSC