第七章 使用語言:一個擴充套件的示例
一、隔離領域:引入應用層
為防止領域職責與系統的其它部分混雜在一起,我們應用LAYERED ARCHITECTURE把領域層劃分出來。不同的功能分配給不同的應用層類。這些應用層類是協調者,它們只負責提問,不負責回答,回答是領域層的工作。
二、將ENTITY和VALUE OBJECT區別開
依次考慮每個物件,看這個物件是必須被跟蹤的實體還是僅表示一個基本值。
三、領域關聯
模型中經常會存在迴圈引用,有時在設計中是必須要的,但是維護起來很複雜,應該避免把必須同步的資訊儲存在兩個同的地方。
四、選擇AGGREGATE邊界
五、選擇REPOITORY
六、場景走查
為了複核這些決策,我們需要經常走查場景,以確保能夠有效解決應用問題
七、物件的建立
FACTORY和建構函式
八、重構
建模和設計並不總是一個不斷向前的過程,如果不經常進行重構,以便利用新的知識來改造模型和設計,那麼建模和設計將會停滯不前。
九、module劃分
十、劃分業務
十一、效能優化
總結:綜上就是一個具體的簡單的DDD所要考慮的問題。
相關推薦
第七章 使用語言:一個擴充套件的示例
一、隔離領域:引入應用層 為防止領域職責與系統的其它部分混雜在一起,我們應用LAYERED ARCHITECTURE把領域層劃分出來。不同的功能分配給不同的應用層類。這些應用層類是協調者,它們只負責提問,不負責回答,回答是領域層的工作。 二、將ENTITY和VALUE O
js設計模式第七章 語言之魂——原型模式 讀書筆記
原型模式:用原型例項指向建立物件的類,使用於建立新的物件的類共享原型物件的屬性以及方法。 基於原型鏈實現物件之間的繼承,這種繼承是基於一種對方法或屬性的共享,而不是對方法和屬性的複製。 原型模式就是將可複用的、可共享的、耗時大的從基類中提出來然後放在其原型中,然後子類通過組合繼承或者寄生組合
Java程式設計題解與上機指導(第四版)第七章 Java語言的高階特性 7.2藉助泛型定義一個線性表
線性表:由相同型別的物件組成的一個線性結構360百科: 定義 線性表(linear list)是資料結構的一種,一個線性表是n個具有相同特性的資料元素的有限序列。資料元素是一個抽象的符號,其具體含義在不同的情況下一般不同。 在稍複雜的線性表中,一個數據元素可由多個數據項(
《用Python進行自然語言處理》程式碼筆記(五):第七章:從文字提取資訊
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : Peidong # @Site : # @File : eg7.py # @Software: PyCharm """ 從文字提取資訊 """
java:第七章
ring 繼續 sys int can 循環 span score 平臺 第七章 循環的強化練習 public static void main(String[] args) { Scanner input = new Scanner(System.in
第七章:常用類
substr 獲取字符串 算術 java 基本數據類型轉換 float equals 表達式 seed 第七章:常用類 包裝類 java中有8中基本類型,對應有八種包裝類作用:包裝類中封裝了該類型常用的屬性和方法,以方便操作。byte---->Byteshort---
Linux性能優化 第七章 性能工具:網絡
很多 ant 介質 宋體 有關 系統 cto 頭部 一個數 7.1 網絡I/O介紹 Linux和其他主流操作系統中的網絡流量被抽象為一系列的硬件和軟件層次。 鏈路層,也就是最低的一層,包含網絡硬件,如以太網設備。在傳送網絡流量時,這一層並不區分流量類
OpenGL藍寶書第七章:立體天空和紋理折射、雙紋理(下)
ever oot 可行性 VR char 都是 pipeline 差異 pac 對照了藍寶書,才知道紅寶書的長處。 reflect函數的原理在紅寶書中有說明,僅僅有
第七章:跨程序共享數據-探究內容提供器
打電話 動態 什麽 普通權限 明顯 ast 運行 狀態 用法 運行時權限 Android 6.0 之後的系統提供了兩種權限: 普通權限。例如:訪問網絡狀態、監控開機是否完成等。這種權限會在安裝 APP 時詢問用戶是否同意。 危險權限,也就是說運行時權限,需要在程序運行時動
java並發編程實戰:第七章----取消與關閉
希望 檢索 原子 put get() 文件句柄 停止工作 下一個 告訴 Java沒有提供任何機制來安全地終止線程(雖然Thread.stop和suspend方法提供了這樣的機制,但由於存在缺陷,因此應該避免使用 中斷:一種協作機制,能夠使一個線程終止另一個線程的當前工作 立
《編碼-隱匿在計算機軟硬背後的語言》第七章我們的十個數字
復雜 抽象 不足 符號 相關 運算 生日 自己 記賬 1.數字當然是我們平常所能接觸到的一種最抽象的編碼。當我們看到數字:3,不需要立刻將它與任何事物聯系起來。我們可能會聯想到3個蘋果或者3個別的什麽…… 2.但是當我們從上下文中得知數字表示的某個孩子的生日、電視頻道、曲棍
Docker | 第七章:Docker Compose服務編排介紹及使用
覆蓋 tin linu docs 使用 學習 events environ 操作系統 前言 前面章節,我們學習了如何構建自己的鏡像文件,如何保存自己的鏡像文件。大多都是一個鏡像啟動。當一個系統需要多個子系統進行配合時,若每個子系統也就是鏡像需要一個個手動啟動和停止的話,那
C#本質論6.0第七章:接口
派生 over 由於 轉型 face 逗號 接口類 明顯 value 接口: 概述: 接口能將實現細節和提供的服務完全隔離開。接口既不包括實現,也不包括數據。 接口實現:(待補) 要實現的接口和基類名稱以逗號分隔,基類在前,接口順序任意。類可實現多個接口,但只能從一個基類直
Introduction to 3D Game Programming with DirectX 12 學習筆記之 --- 第七章:在Direct3D中繪製(二)
程式碼工程地址: https://github.com/jiabaodan/Direct12BookReadingNotes 學習目標 理解本章中針對命令佇列的更新(不再需要每幀都flush命令佇列),提高效能; 理解其他兩種型別的根訊號引數型別:根描述
快速學習Spring Data JPA -- 第七章JPA擴充套件Auditing
xl_echo編輯整理,交流學習請加1280023003 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這才是真正的堪稱強大!! 整個JPA框架的東西很多,前面的一至六章其實已經可以滿足我們工作中的大部分需求。那麼還有一小部分比較不常用的我們就開始歸納到第七章及後面的
第七章:小世界網路模型
第7章 小世界網路模型:本章將圍繞小世界網路模型展開,主要內容分為兩個部分:(1)如何構建具有較大的聚類特性又具有較短的平均距離的小世界網路模型?(2)什麼樣的小世界網路才能實現有效搜尋? 7.2小世界網路模型 7.2.1小世界網路模型完全規則最近耦合網路:高聚類:c=3(k-2)/4(k-1)>=
演算法導論 第七章:快速排序 筆記(快速排序的描述、快速排序的效能、快速排序的隨機化版本、快速排序分析)
快速排序的最壞情況時間複雜度為Θ(n^2)。雖然最壞情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因為它的平均效能很好。它的期望執行時間複雜度為Θ(n lg n),而且Θ(n lg n)中蘊含的常數因子非常小,而且它還是原址排序的。 快速排序是一種排序演算法,對包含n個數的
JavaScript第七章:Ajax
Ajax的優勢在於:對於頁面的請求以非同步方式傳送到伺服器。而伺服器不會用整個頁面來響應請求,它會在後臺處理請求,與此同時使用者還能繼續瀏覽頁面並與頁面互動。你的指令碼則可以按需載入和建立頁面內容,而不會打斷使用者的瀏覽體驗。 1.XMLHttpRequest物件
JavaScirpt第七章:重回圖片庫
在過去的圖片庫HTML檔案中有一個圖片和文字是為了showPic指令碼服務的。若能將結構和行為徹底分開就最好不過。既然這些元素的存在是為了讓DOM方法處理它們,那麼用DOM方法建立它們才是最合適的選擇。 var placeholder=document.createElemen
JavaScript第七章:一些傳統方法
過去我們常常由標記建立網頁結構,用JavaScript改變某些細節而非底層結構。這一章我們將要學習一些DOM方法,通過建立新元素和修改現有元素改變網頁結構。首先回顧過去使用的兩種技術document.write和innnerHTML。 1.document.write