如何高效架構領域模型

2021-08-23 15:46:54 字數 679 閱讀 9067

軟體架構之領域模型:

領域模型主要職責是在各個層之間傳輸資料,是業務的基礎和前後端通訊的元。

開發中存在很多類似的概念,如domain、scope、view等,但他們的功能是類似的。如果將數

據分別放置不僅會增加**量,而且造成資料過度分散,理解力下降。

作為乙個類應該是抽象的,但應該可以充分描述乙個事物。例如乙個人:應該具有體徵描述、

意識描述、社會關係描述等。但我們大多時候定義類只定義我們所關注的某些方面。

在領域模型方面,目前的一種建議可以分為如下幾個部分,我稱之為「域」:

1.常量域

2.屬性域

3.關聯域

4.查詢域

通過在領域模型中包含這四種域,在配置hibernate或ibatis等可以實現大多數的web開發中對

domain、model、scope、view等物件的需求。下面分別介紹這四種域。

1.常量域:設定物件的全域性屬性,列舉值等基本常量。

2.屬性域:物件的基本屬性,一般指用於資料庫實體對映的字段。

3.關聯域:物件對其它物件的引用,一般用於資料庫實體的關聯關係。

4.查詢域:物件屬性的擴充套件,該域中的屬性不用於對映,是對屬性的描述,例如年齡最大值和

最小值、聯絡人列表等。主要用於查詢,是對屬性域的補充。

注:以上域之間可以存在重疊。

FAQ 如何修改領域模型?

問 如何修改領域模型?答 一般來說我們有兩種選擇,這兩種選擇也是兩種價值觀的體現 樂觀和悲觀 第一種 使用ui傳遞過來的dto在應用層重建domain model,然後執行修改,dto更多的表達了一種結果。第二種 使用repository從database中重建domain model,然後使用dt...

富領域模型和貧血領域模型

貧血領域模型乙個明顯的特徵是 它僅僅是看上去和領域模型一樣,都是物件,都以領域空間中定 義的名詞命名,這些物件通過實際領域模型中豐富的關係和結構相互關聯。但是觀察模型所持有的 業務邏輯時會發現,貧血模型中除了大量 getter 和 setter,幾乎沒有其他業務邏輯。當然,在使用貧血領域模型時,那些...

建立領域模型

領域模型是對領域內的概念類或現實世界中物件的視覺化表示。又稱概念模型 領域物件模型 分析物件模型。它專注於分析問題領域本身,發掘重要的業務領域概念,並建立業務領域概念之間的關係。1 概念類分類表 就是事先分好類,然後由分析人員在需求資訊中尋找相應類別的候選物件進行確定和歸納,形成概念類。顧客向系統提...