什么是DDD分層架構(gòu)

本篇內(nèi)容介紹了“什么是DDD分層架構(gòu)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站主營羅城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),羅城h5重慶小程序開發(fā)搭建,羅城網(wǎng)站營銷推廣歡迎羅城等地區(qū)企業(yè)咨詢

DDD(Domain DrivenDesign,領(lǐng)域驅(qū)動設(shè)計)作為一種軟件開發(fā)方法,它可以幫助我們設(shè)計高質(zhì)量的軟件模型。在正確實現(xiàn)的情況下,我們通過DDD完成的設(shè)計恰恰就是軟件的工作方式。 UL(Ubiquitous Language,通用語言)是團隊共享的語言,是DDD中最具威力的特性之一。不管你在團隊中的角色如何,只要你是團隊的一員,你都將使用UL。由于UL的重要性,所以需要讓每個概念在各自的上下文中是清晰無歧義的,于是DDD在戰(zhàn)略設(shè)計上提出了模式BC(BoundedContext,限界上下文)。UL和BC同時構(gòu)成了DDD的兩大支柱,并且它們是相輔相成的,即UL都有其確定的上下文含義,而BC中的每個概念都有唯一的含義。 一個業(yè)務(wù)領(lǐng)域劃分成若干個BC,它們之間通過Context Map進行集成。BC是一個顯式的邊界,領(lǐng)域模型便存在于這個邊界之內(nèi)。領(lǐng)域模型是關(guān)于某個特定業(yè)務(wù)領(lǐng)域的軟件模型。通常,領(lǐng)域模型通過對象模型來實現(xiàn),這些對象同時包含了數(shù)據(jù)和行為,并且表達了準確的業(yè)務(wù)含義。 從廣義上來講,領(lǐng)域即是一個組織所做的事情以及其中所包含的一切,表示整個業(yè)務(wù)系統(tǒng)。由于“領(lǐng)域模型”包含了“領(lǐng)域”這個詞,我們可能會認為應(yīng)該為整個業(yè)務(wù)系統(tǒng)創(chuàng)建一個單一的、內(nèi)聚的和全功能式的模型。然而,這并不是我們使用DDD的目標。正好相反,領(lǐng)域模型存在于BC內(nèi)。 模式一:四層架構(gòu)

Eric Evans在《領(lǐng)域驅(qū)動設(shè)計-軟件核心復(fù)雜性應(yīng)對之道》這本書中提出了傳統(tǒng)的四層架構(gòu)模式,如下圖所示: 什么是DDD分層架構(gòu) User Interface為用戶界面層(或表示層),負責向用戶顯示信息和解釋用戶命令。這里指的用戶可以是另一個計算機系統(tǒng),不一定是使用用戶界面的人。 Application為應(yīng)用層,定義軟件要完成的任務(wù),并且指揮表達領(lǐng)域概念的對象來解決問題。這一層所負責的工作對業(yè)務(wù)來說意義重大,也是與其它系統(tǒng)的應(yīng)用層進行交互的必要渠道。應(yīng)用層要盡量簡單,不包含業(yè)務(wù)規(guī)則或者知識,而只為下一層中的領(lǐng)域?qū)ο髤f(xié)調(diào)任務(wù),分配工作,使它們互相協(xié)作。它沒有反映業(yè)務(wù)情況的狀態(tài),但是卻可以具有另外一種狀態(tài),為用戶或程序顯示某個任務(wù)的進度。 Domain為領(lǐng)域?qū)樱ɑ蚰P蛯樱撠煴磉_業(yè)務(wù)概念,業(yè)務(wù)狀態(tài)信息以及業(yè)務(wù)規(guī)則。盡管保存業(yè)務(wù)狀態(tài)的技術(shù)細節(jié)是由基礎(chǔ)設(shè)施層實現(xiàn)的,但是反映業(yè)務(wù)情況的狀態(tài)是由本層控制并且使用的。領(lǐng)域?qū)邮菢I(yè)務(wù)軟件的核心,領(lǐng)域模型位于這一層。 Infrastructure層為基礎(chǔ)實施層,向其他層提供通用的技術(shù)能力:為應(yīng)用層傳遞消息,為領(lǐng)域?qū)犹峁┏志没瘷C制,為用戶界面層繪制屏幕組件,等等?;A(chǔ)設(shè)施層還能夠通過架構(gòu)框架來支持四個層次間的交互模式。傳統(tǒng)的四層架構(gòu)都是 限定型松散分層架構(gòu) ,即Infrastructure層的任意上層都可以訪問該層(“L”型),而其它層遵守 嚴格分層架構(gòu)

User Interface層主要是Restful消息處理,配置文件解析,等等。 Application層主要是多進程管理及調(diào)度,多線程管理及調(diào)度,多協(xié)程調(diào)度和狀態(tài)機管理,等等。 Domain層主要是領(lǐng)域模型的實現(xiàn),包括領(lǐng)域?qū)ο蟮拇_立,這些對象的生命周期管理及關(guān)系,領(lǐng)域服務(wù)的定義,領(lǐng)域事件的發(fā)布,等等。 Infrastructure層主要是業(yè)務(wù)平臺,編程框架,第三方庫的封裝,基礎(chǔ)算法,等等。

“什么是DDD分層架構(gòu)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

本文名稱:什么是DDD分層架構(gòu)
本文URL:http://muchs.cn/article40/ijcseo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)全網(wǎng)營銷推廣移動網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、App開發(fā)虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司