領域對象設計包含:聚合、聚合根、實體對象、值對象的設計。其中,對象信息包含對象屬性、對象關系、對象行為。本文為您介紹如何通過面板創建領域對象,以及編輯、刪除等操作;您也可以使用領域對象設計器完成上述操作。
前提條件
當前賬號擁有項目權限。
已完成限界上下文的創建。具體操作,請參見創建與管理限界上下文。
新建領域對象
登錄BizWorks,在選擇平臺下拉列表中選中建模平臺。
單擊頁面右上角圖標或其文本框區域,在下拉列表中單擊目標項目名稱后,單擊建模頁簽。在建模導航欄中,選擇 。
在限界上下文頁面,單擊目標限界上下文名稱。
在目標限界上下文導航欄中,單擊領域對象。
在領域對象頁面,新建領域對象。
單擊新建領域對象。
在新建領域對象面板,完成基本信息設置。
表 1. 基本信息 參數
說明
對象名稱
自定義領域對象名稱。名稱長度不得超過100個字符。
編碼
英文字母和數字的組合,長度不得超過80個字符,需以大寫字母開頭,且在限界上下文內唯一。
對象類型
在下拉列表中選擇實體對象或值對象。
聚合根
選中該參數,將當前領域對象設置為聚合根。
說明如果對象類型選擇實體對象,則默認選中聚合根。
如果對象類型選擇值對象,則不顯示該參數。
描述
領域對象描述信息,非必填。
完成后您可單擊創建,保存對象基本信息,然后單擊對象的操作欄編輯進行后續操作;也可以直接執行下一個步驟,當領域對象的全部內容設置完成后再保存。
單擊對象屬性頁簽,單擊添加對象屬性,完成以下信息配置。
表 2. 領域對象屬性 參數
說明
字段名稱
自定義領域對象屬性的名稱。
編碼
英文字母和數字的組合,長度不得超過80個字符,需以小寫字母開頭,且在領域對象內唯一。
數據類型
通過下拉列表選擇:
基本類型:String、Integer、Boolean等。
集合類型:List<基本類型或對象類型編碼>、Set<基本類型或對象類型編碼>、Map<基本類型或對象類型編碼>。
List和Set集合類型支持嵌套。
Map集合類型中Key和Value支持自定義,但不支持Map的嵌套。
對象類型:本限界上下文中已創建且保存的領域對象類型。
新建領域對象:您可以新建領域對象將其配置為對象屬性的數據類型。
描述
領域對象屬性描述信息,非必填。
添加完成后,可在對象屬性頁簽下查看屬性列表,并可以編輯或刪除。
將鼠標懸浮至圖標位置,界面會顯示對象屬性已關聯的關系信息。
單擊對象行為頁簽,單擊添加對象行為,完成以下信息配置。
表 3. 對象行為參數 參數
說明
行為名稱
自定義對象行為的名稱。
編碼
英文字母和數字的組合,長度不得超過80個字符,需以小寫字母開頭,且在領域對象內唯一。
描述
領域對象行為描述,非必填。
行為入參
單擊添加按鈕,設置行為入參。入參可創建多個。入參說明請參見行為入參。
行為出參
單擊添加按鈕,設置行為出參。出參最多僅可設置一個。如不設置,返回值為
void
。表 4. 行為入參 參數
說明
參數名稱
自定義行為入參名稱。
編碼
英文字母和數字的組合,長度不得超過80個字符,需以小寫字母開頭,且在領域對象行為級唯一。
參數類型
通過下拉列表選擇:
基本類型:Boolean、Byte、Short等。
集合類型:List<基本類型或對象類型編碼>、Set<基本類型或對象類型編碼>、Map<基本類型或對象類型編碼>。
對象類型:本限界上下文中已創建且保存的領域對象類型。
新建領域對象:您可以新建領域對象將其配置為行為入參的參數類型。
必填
選中后,該參數為必填參數。
描述
行為入參描述,非必填。
配置完成后,可在對象行為頁簽下查看行為列表,并可以編輯或刪除。
單擊對象關系頁簽,單擊添加領域對象關系操作。在領域對象關系對話框中,配置以下信息,并單擊確定。
表 5. 領域對象關系 參數
說明
關系類型
在關系類型下拉框選擇關聯、聚合、組合或繼承。關于對象關系設置規則,請參見對象關系設置規則表。
關系重數
在下拉框選擇1 : 0..*、1 : 1..*、1 : 0..1或1 : 1。
1 : 0..*:表示對象間是“一對多”的關系,類似“1:N”,N允許為0。
1 : 1..*:表示對象間是“一對多”的關系,類似“1:N”,N最少為1。
1 : 0..1:表示對象間是“一對一”的關系(支持“一對零”或“一對一”),右側目標對象可以沒有數據。
1 : 1:表示對象間是“一對一”的關系,右側目標對象有且僅有一條數據與左側的對象對應。
說明繼承關系不支持關系重數。詳細設置邏輯,請參見對象關系多重性設置規則表。
目標對象
當前限界上下文內已創建并保存的領域對象。
關系名稱
自定義領域對象關系名稱。
編碼
英文字母和數字的組合,長度不得超過80個字符,需以小寫字母開頭,且在領域對象內唯一。
描述
領域對象關系描述,非必填。
表 6. 對象關系設置規則表 場景
關聯
聚合
組合
繼承
領域模型A->領域模型A
允許建立,且允許創建多個。
不允許建立。
不允許建立。
不允許建立。
領域模型A->領域模型B
允許建立,且允許創建多個。
允許建立,且允許創建多個。
允許建立,且允許創建多個。
允許建立,且一個對象下只能創建一個繼承關系 。
說明不可導致循環繼承。如對象B繼承了對象A,則對象A不能再繼承對象B。或者,如對象B繼承了對象A,對象C繼承了對象B,則對象A不能再繼承對象C;其他場景類似。
表 7. 對象關系多重性設置規則表 對象關系
1 : 0..*
1 : 1..*
1 : 0..1
1 : 1
關聯
適用
適用
適用
適用
聚合
適用
適用
適用
適用
組合
適用
適用
適用
適用
繼承
不適用
不適用
不適用
不適用
配置完成后,可在對象關系頁簽下查看關系列表,并可以編輯或刪除。
完成相關配置后,單擊創建。
編輯領域對象
在領域模型列表中,單擊目標領域對象右側操作列下的編輯。
在編輯領域對象面板,修改配置信息后,單擊保存。
刪除領域對象
在領域模型列表中,單擊目標領域對象右側操作列下的刪除。
在二次確認對話框中,單擊刪除。
復制領域對象到其他限界上下文
在領域模型列表中,單擊目標領域對象右側操作列下的復制到其它限界上下文。
在對象復制到目標限界上下文面板,完成相關配置項設置。
在目標限界上下文下拉列表中選擇目標限界上下文,在其版本列表中選擇目標限界上下文版本。
設置重復數據規則。重復數據處理策略支持跳過重復數據、覆蓋已有數據和終止生成數據。
配置項
說明
跳過重復數據
生成結構對象和數據模型時,如果編碼已經存在,則結構對象和數據模型的名稱、編碼以及所有的字段都不做任何修改。
生成應用服務時,如果服務編碼已存在,服務本身信息不做修改,并繼續判斷方法是否存在,如果方法編碼也相同則不再判斷出入參,該方法將不再重復生成。
覆蓋已有數據
編碼相同的數據將被覆蓋,包括名稱和類型。
不在生成范圍內的數據不受影響,將被保留。
終止生成數據
只要應用服務、應用服務方法、結構對象或者數據模型中有任何一個編碼與已有數據編碼重復,則任何數據都不會生成,生成過程將自動終止。
說明復制領域對象到其他限界上下文:將領域模型中所選的領域對象,復制到下拉框中所選目標限界上下文的領域模型中。
復制的領域對象信息包含對象的模型名稱、編碼、對象類型的屬性。
在目標限界上下文下拉列表中所選擇的目標限界上下文,不支持選擇當前對象所在的限界上下文。
復制過程中,當對象的編碼有重復時,您可以根據配置選擇復制動作的重復數據處理策略。
導入業務對象
在領域對象頁面,單擊導入業務對象。
在批量導入面板,選中目標業務對象名稱(支持多選),完成后單擊下一步。
您可以從限界上下文所關聯的業務領域下,選擇合適的業務對象導入。
在業務領域如何關聯業務對象,具體操作,請參見關聯或解綁業務對象分類。
設置導入規則。重復數據處理策略支持跳過重復數據、覆蓋已有數據和終止生成數據。
配置項
說明
跳過重復數據
生成對象時,如果編碼已存在,則跳過該項繼續生成下一個對象。
覆蓋重復數據
生成對象時,如果編碼已存在,則更新重復的數據。即:更新對象名稱、更新屬性、更新行為、新增目標對象沒有的屬性和行為,不做數據刪除。
刪除并新建
在生成對象時,如果編碼已存在,則刪除已編碼重復的對象,并新建對象。
說明對象名稱:業務對象名稱。
對象編碼:業務對象編碼。
對象類型:實體對象。
對象屬性:初始導入與業務對象屬性保持一致,重復導入則根據導入規則配置執行。
對象屬性類型:業務對象屬性文本類型導入成為String、數字類型導入成為Integer,時間導入成為Date。
對象行為:初始導入與業務對象行為保持一致,重復導入則根據導入規則配置執行。
單擊導入。