我們在做領域設計階段時,,
這其中可能就包括了我們需要領域模型的原形
;依據此原形,我們建立領域模型
,並在以後的詳細設計中不段的調整和精化它
;最終形成我們領域模型
(entity);
在初期,我們肯定給這些模型給予屬性
,set
或get方法;
在這之後
,,我們會根據
rdd的方式完善它
,確定它的行為
;但是這個行為的確定往往都沒固定邊界
;要比較好確定這些行為
,,往往難度比較大
;;;
我這裡要說的四種領域模型
,這就必須提到
orm和
dao,
我認為沒有這兩個前提
,在這裡說領域模型就沒多大意思了;
首先說失血模型
,簡單理解是只有屬性的實體物件
,也就是資料物件;
貧血模型
,是在上面模型的基礎上增加了
crud
這四個基本功能
,而業務邏輯是放到
service
處理的.
失血和貧血的優點在於層次結構清楚,各層之間單向依賴,
client->(businessfacade)->business logic->data access(ado.net)
。當然businesslogic
是依賴domainobject
的。 缺點是它不
oo,,
不過我認為這到不是很重要
,但網上也很多爭論的地方也在這裡
充血模型和貧血結構上差不多
,不同的是它把大部分與自己相關領域的行為或者邏輯放到領域物件裡面了
,而業務層或者
service
中只有少量的邏輯
,簡單日誌,許可權
,事務等
,這樣層次結構就變成
client->
(businessfacade)->business logic->domain object->data access
。其優點是它是oo的
,缺點也很明顯
,怎樣劃分業務邏輯在各領域模型之間
,會非常困難
,其次是在
domain
中的邏輯常常會在
businesslogic
再次封裝
,以便為
business
的上層提供消費介面
,,,這樣的話,
,也就出現重複勞動了
最後還有一種脹血模型
1、失血模型
2、貧血模型
service(3業務邏輯,事務封裝
)--> dao ---> domain object
、充血模型
service(4事務封裝
)---> domain object <---> dao
、脹血模型
domainobject(事務封裝,業務邏輯
)<---> dao
四種常用IO模型
1 同步阻塞io blocking io 2 同步非阻塞io non blocking io 3 io多路復用 io multiplexing 4 非同步io asynchronous io 注意以下概念 1.同步 非同步 同步和非同步是相對的 同步 前後兩件任務,有嚴格的順序一致性 依賴和遞進 按...
深度學習模型儲存 四種深度學習模型介紹
深度學習源於神經網路的研究,可理解為深層的神經網路。通過它可以獲得深層次的特徵表示,免除人工選取特徵的繁複冗雜和高維資料的維度災難問題。目前較為公認的深度學習的基本模型包括 dbn可用於特徵提取和資料分類等。基於rbm的dbn由多個rbm堆疊而成,其結構如下圖所示。網路前向運算時,輸入資料從低層rb...
P2P四種網路模型
1.集中目錄式。這是最早出現的p2p應用模式,因為仍然具有中心化的特點也被稱為非純粹的p2p結構。用於共享 檔案的napster是其中最典型的代表。其使用者註冊與檔案檢索過程類似於傳統的c s模式,區別在於所有資料並非儲存在伺服器上,而是存貯在各個節點中。這種網路結構顯示了p2p系統資訊量巨大的優勢...