領(lǐng)域驅(qū)動中的 DDD 設(shè)計

      網(wǎng)友投稿 917 2025-03-31

      前面一篇文章講到,DDD 概念理解起來有點抽象,這個有點像設(shè)計模式,感覺很有用,但是自己開發(fā)的時候又不知道怎么應(yīng)用到代碼里面,或者生搬硬套后自己看起來都很別扭。


      DDD總體結(jié)構(gòu)分為四層: Infrastructure(基礎(chǔ)實施層),Domain(領(lǐng)域?qū)?,Application(應(yīng)用層),Interfaces(表示層,也叫用戶界面層或是接口層)。

      而 DDD 的戰(zhàn)略設(shè)計主要包括領(lǐng)域/子域、通用語言、限界上下文和架構(gòu)風(fēng)格等概念。

      現(xiàn)實世界中,領(lǐng)域包含了問題域和解系統(tǒng)。一般認(rèn)為軟件是對現(xiàn)實世界的部分模擬。在DDD中,解系統(tǒng)可以映射為一個個限界上下文,限界上下文就是軟件對于問題域的一個特定的、有限的解決方案。

      在日常開發(fā)中,我們通常會將一個大型的軟件系統(tǒng)拆分成若干個子系統(tǒng)。這種劃分有可能是基于架構(gòu)方面的考慮,也有可能是基于基礎(chǔ)設(shè)施的。但是在DDD中,我們對系統(tǒng)的劃分是基于領(lǐng)域的,也即是基于業(yè)務(wù)的。

      領(lǐng)域驅(qū)動中的 DDD 設(shè)計

      一個由顯示邊界限定的特定職責(zé)。領(lǐng)域模型便存在于這個邊界之內(nèi)。在邊界內(nèi),每一個模型概念,包括它的屬性和操作,都具有特殊的含義。

      將一個限界上下文中的所有概念,包括名詞、動詞和形容詞全部集中在一起,我們便為該限界上下文創(chuàng)建了一套通用語言。通用語言是一個團(tuán)隊所有成員交流時所使用的語言,業(yè)務(wù)分析人員、編碼人員和測試人員都應(yīng)該直接通過通用語言進(jìn)行交流。

      對于上文中提到的各個子域之間的集成問題,其實也是限界上下文之間的集成問題。在集成時,我們主要關(guān)心的是領(lǐng)域模型和集成手段之間的關(guān)系。比如需要與一個REST資源集成,你需要提供基礎(chǔ)設(shè)施(比如Spring 中的RestTemplate),但是這些設(shè)施并不是你核心領(lǐng)域模型的一部分,你應(yīng)該怎么辦呢?答案是防腐層,該層負(fù)責(zé)與外部服務(wù)提供方打交道,還負(fù)責(zé)將外部概念翻譯成自己的核心領(lǐng)域能夠理解的概念。當(dāng)然,防腐層只是限界上下文之間眾多集成方式的一種,另外還有共享內(nèi)核、開放主機服務(wù)等,具體細(xì)節(jié)請參考《實現(xiàn)領(lǐng)域驅(qū)動設(shè)計》原書。限界上下文之間的集成關(guān)系也可以理解為是領(lǐng)域概念在不同上下文之間的映射關(guān)系,因此,限界上下文之間的集成也稱為上下文映射圖。

      小結(jié)

      本文通過Spring Web應(yīng)用的瑕疵引出改善的措施,隨后介紹了領(lǐng)域驅(qū)動開發(fā)的相關(guān)概念和設(shè)計策略。在前面講了這么多概念,想必讀者一定有了解如何落地領(lǐng)域驅(qū)動設(shè)計的沖動。筆者將在下一篇文章介紹領(lǐng)域模型的幾種類型和DDD的具體實踐案例。

      Spring Web 應(yīng)用的最大瑕疵

      領(lǐng)域驅(qū)動設(shè)計(DDD)

      Spring 面向?qū)ο缶幊?/p>

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:物流技術(shù):第1部分-動態(tài)環(huán)境管理
      下一篇:在wps表格中如何設(shè)置第一行不動(wps如何讓第一行不動)
      相關(guān)文章
      亚洲老熟女@TubeumTV| 亚洲成a人无码av波多野按摩| 亚洲精品97久久中文字幕无码| 亚洲熟妇AV乱码在线观看| 亚洲欧洲另类春色校园小说| 日韩精品亚洲人成在线观看| 亚洲gv白嫩小受在线观看 | 亚洲另类少妇17p| 免费亚洲视频在线观看| 日韩欧美亚洲中文乱码| 久久精品国产亚洲av瑜伽| 亚洲一区二区三区写真| 亚洲人成色77777在线观看| 亚洲AV日韩综合一区尤物| 亚洲乱码中文字幕小综合| 亚洲伦理一二三四| 亚洲xxxxxx| 亚洲午夜精品久久久久久app| 亚洲五月综合缴情婷婷| 天天爽亚洲中文字幕| 亚洲日韩av无码中文| 亚洲av午夜国产精品无码中文字| 亚洲av日韩综合一区久热| 在线观看免费亚洲| 亚洲国产成人a精品不卡在线| 亚洲人成色7777在线观看不卡| 国产精品亚洲精品爽爽| 亚洲国产成人五月综合网 | 国产亚洲精彩视频| 亚洲第一福利网站在线观看| 亚洲欧洲久久久精品| 亚洲中文久久精品无码| 国产精品亚洲片在线| 亚洲人成电影亚洲人成9999网| 亚洲美女色在线欧洲美女| 久久久久se色偷偷亚洲精品av| 亚洲色一区二区三区四区| 成人亚洲综合天堂| 亚洲色欲色欲www在线丝| 亚洲成人免费在线| 亚洲午夜精品一区二区公牛电影院|