DDD理論學習系列目錄html
咱們仍是先來拆詞理解,領域模型能夠拆爲「領域」和「模型」二詞。微信
把兩個詞結合起來,咱們給領域模型下個定義:領域模型是對咱們軟件系統中要解決問題的抽象表達。dom
這個理解仍是很生澀,不要緊,容我娓娓道來。學習
咱們知道,軟件開發過程主要包括:需求分析、概要設計、詳細設計、編碼、測試、軟件交付、驗收、維護。其實簡單來講就是分析、設計和實現。測試
而傳統的軟件開發方式中,系統分析、設計和實現三個階段徹底脫節,最後開發出來的軟件不能很好的知足業務需求,在將來也不能很好的適應需求變化進行功能演進。編碼
那在DDD中是如何作到呢,下面咱們就從如下幾個問題來分析說明。設計
經過上面對領域模型的來歷和做用的介紹,咱們對領域模型就有了一個大體的印象。htm
按照上面的理解,領域模型無非就是綜合了系統分析和設計的產物,而這個產物咱們正好能夠經過UML來展現,下面咱們就結合辦公設備微信公衆號在線商城案例,簡單對銷售子域進行領域模型設計。對象
從該銷售子域的UML類圖中,咱們能夠看出它包含了銷售子域涉及到相關實體以及實體之間的關係。只要看到這個類圖,咱們就知道它涉及的相關概念和流程。因此說上面這張UML類圖是銷售子域的領域模型也不爲過。blog
領域反應的是咱們業務上須要解決的問題,模型是咱們針對該問題提出的解決方案。
綜合來講,領域模型就是用來描述咱們正在解決的問題和提出的解決方案。
領域模型按照我我的的理解,就是將業務中涉及到的概念以面向對象的思想進行抽象,抽象出實體對象,肯定實體所對應的方法和屬性,以及實體之間的關係。而後將這些實體和實體之間的關係以某種形式(好比UML、圖形、代碼、文字描述等)展示出來。
以上只是領域模型理論上的理解,但領域模型的設計(領域建模)倒是另外一個複雜的話題,擇日再聊。
參考資料:
領域模型,你真的理解的了嗎?
DDD領域驅動設計基本理論知識總結
What is the Domain Model in Domain Driven Design? | Culttt