簡體   English   中英

什么是正確的域模型?

[英]What is the correct domain model?

我是面向對象設計模式的新手。 我對領域模型有一個基本的了解。 但是,我陷入了以下問題。 問題是我有一個包含事件和客戶(均為1 .... *)的系統。 此外,事件包含程序包。 允許用戶預訂事件。 但是,他必須通過預訂事件中包含的包裹來做到這一點。 給定情況的正確領域模型應該是什么。 我對類似問題做了很多研究,但找不到合適的答案。

我的猜測:1)

在此圖中,客戶可以預訂事件,但是我不確定,因為客戶正在預訂事件中包含的包。 我應該為給定的系統選擇該域模型嗎? 這是直觀的,因為它允許客戶預訂事件。

2) 在此處輸入圖片說明

在此圖中,域模型表示系統的結構。 但是,客戶應僅通過事件來獲取包裹。 因此,我不確定該域模型。 當事件中包含包裹時,客戶如何預訂包裹。

請提出哪種域模型是正確的。 我是初學者,所以請提供一個很好的解釋。 謝謝你的協助!

首先-沒有明確的答案。 通常,您可以用幾種不同的方式創建並獲得良好的效果。

其次-我認為兩者都包含關系應該是聚合。 “到系統的事件”是(可能)是一個復合聚合,而“到事件的包”可以是復合的(如果特定的包僅特定於一個事件)或可以共享(如果可以通過各種事件使用相同的包)。

現在是主要問題。 如果“事件”和“包裝”之間的關系是一個組合(復合聚合),則可以將書籍關系建模為“客戶”和“包裝”之間的關聯。 然后該事件是唯一可識別的。 您還可以擴展您的模型,從而將一個關系添加到事件的派生類(從書中)。

這是一個示例(請注意,描述此符號是派生的關聯的/符號): 派生關聯

對於“事件”和“程序包”之間的復合和共享聚合都有效的另一個選項是,對“客戶”和“事件”之間的“書本”關系建模,但將其建模為關聯類。 然后,您有一個描述關聯的類(Book),並且該類可以具有selectedPackage到Package的關系。 在這種情況下,您的模型將如下所示: 社團班

我敢打賭,您還可以找到其他仍然有效的建模問題的方法,並顯示到目前為止提供的所有信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM