背景:最近不斷反思自己的設(shè)計(jì)為什么越精進(jìn)越和傳統(tǒng)3層有所抵觸,經(jīng)過(guò)仔細(xì)反思,不斷地search,發(fā)現(xiàn),正在接近一種設(shè)計(jì)方式DDD,傳統(tǒng)的3層(表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層)而DDD中分4層(表現(xiàn)層、應(yīng)用層、領(lǐng)域?qū)印⒒A(chǔ)層)。這段時(shí)間體會(huì)最深的是應(yīng)用層,一個(gè)事件分流作用,有點(diǎn)像一個(gè)任務(wù)調(diào)配者的。問(wèn)題:領(lǐng)域?qū)?,究竟如何根?jù)建模?舉個(gè)簡(jiǎn)單需求,做一個(gè)賬單登記模塊。拋開數(shù)據(jù)庫(kù),從領(lǐng)域出發(fā),用戶具有新建賬單,編輯賬單等行為,也是比較直觀的,但那些展示數(shù)據(jù)的功能又如何劃分到領(lǐng)域模型中呢?例如常見的有賬單的明細(xì)展示,賬單頭顯示,這些功能不知道如何按模型劃分,高手請(qǐng)指教!
2 回答

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
領(lǐng)域?qū)?nbsp;根據(jù)業(yè)務(wù)邏輯、業(yè)務(wù)需求進(jìn)行建模,把業(yè)務(wù)邏輯映射成一個(gè)個(gè)對(duì)象直接的交互、以及數(shù)據(jù)的傳輸DTO(Data Transfer Object );
拿你舉的例來(lái)說(shuō),就有 NewBill(),EditBill(),ReviewBillDetails() 等操作,DTO 就有 BillEntity,BillDetailEntity,等;DDD 一個(gè)重要特征就是 DTO 的出現(xiàn),DTO 是根據(jù)領(lǐng)域(業(yè)務(wù)邏輯)來(lái)劃分的, 而不是數(shù)據(jù)表 ,DTO 不跟 表一一對(duì)應(yīng)、雖然大部分簡(jiǎn)單的沒(méi)有業(yè)務(wù)操作的基礎(chǔ)數(shù)據(jù)表也可以當(dāng)成DTO,但是他們的劃分依據(jù)完全不同。
- 2 回答
- 0 關(guān)注
- 517 瀏覽
添加回答
舉報(bào)
0/150
提交
取消