DDD理論學習系列(4) 領域模型

2021-09-25 10:29:47 字數 1022 閱讀 2756

ddd理論學習系列目錄

我們還是先來拆詞理解,領域模型可以拆為「領域」和「模型」二詞。

把兩個詞結合起來,我們給領域模型下個定義:領域模型是對我們軟體系統中要解決問題的抽象表達。

這個理解還是很生澀,沒關係,容我娓娓道來。

我們知道,軟體開發過程主要包括:需求分析、概要設計、詳細設計、編碼、測試、軟體交付、驗收、維護。其實簡單來說就是分析、設計和實現。

而傳統的軟體開發方式中,系統分析、設計和實現三個階段完全脫節,最後開發出來的軟體不能很好的滿足業務需求,在未來也不能很好的適應需求變化進行功能演進。

那在ddd中是如何做到呢,下面我們就從以下幾個問題來分析說明。

怎樣確保最終的軟體設計能滿足客戶需求且適應變化?

那就要保證系統分析、設計和實現不脫節。

那如何做到不脫節呢?

如果按照我的理解,那就需要有某乙個東西能貫穿整個開發流程,來銜接分析、設計和實現三個階段。

那這個東西是什麼呢?

聰明如你,是的,就是我們今天的主題——領域模型。

通過上面對領域模型的來歷和作用的介紹,我們對領域模型就有了乙個大致的印象。

從該銷售子域的uml類圖中,我們可以看出它包含了銷售子域涉及到相關實體以及實體之間的關係。只要看到這個類圖,我們就知道它涉及的相關概念和流程。所以說上面這張uml類圖是銷售子域的領域模型也不為過。

領域反應的是我們業務上需要解決的問題,模型是我們針對該問題提出的解決方案。

綜合來說,領域模型就是用來描述我們正在解決的問題和提出的解決方案。

領域模型按照我個人的理解,就是將業務中涉及到的概念以物件導向的思想進行抽象,抽象出實體物件,確定實體所對應的方法和屬性,以及實體之間的關係。然後將這些實體和實體之間的關係以某種形式(比如uml、圖形、**、文字描述等)展現出來。

以上只是領域模型理論上的理解,但領域模型的設計(領域建模)卻是另乙個複雜的話題,擇日再聊。

DDD理論學習系列(4) 領域模型

ddd理論學習系列目錄 我們還是先來拆詞理解,領域模型可以拆為 領域 和 模型 二詞。把兩個詞結合起來,我們給領域模型下個定義 領域模型是對我們軟體系統中要解決問題的抽象表達。這個理解還是很生澀,沒關係,容我娓娓道來。我們知道,軟體開發過程主要包括 需求分析 概要設計 詳細設計 編碼 測試 軟體交付...

DDD理論學習系列(11) 工廠

ddd理論學習系列 案例及目錄 在針對大型的複雜領域進行建模時,聚合 實體和值物件之間的依賴關係可能會變得十分複雜。在某個物件中為了確保其依賴物件的有效例項被建立,需要深入了解物件例項化邏輯,我們可能需要載入其他相關物件,且可能為了保持其他物件的領域不變性增加了額外的業務邏輯,這樣即打破了領域的單一...

DDD理論學習系列(8) 應用服務 領域服務

ddd理論學習系列 案例及目錄 單從字面理解,不管是領域服務還是應用服務,都是服務。而什麼是服務?從soa到微服務,它們所描述的服務都是乙個寬泛的概念,我們可以理解為服務是行為的抽象。從字首來看,根據ddd的經典分層架構,它們又隸屬於不同的層,應用服務屬於應用層,領域服務屬於領域層。領域層 doma...