詳解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和spring
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
Eric Evans的《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》無疑是軟件設(shè)計(jì)領(lǐng)域最重要的幾本書之一。
這本書主要集中在軟件開發(fā)中如何處理領(lǐng)域和軟件的映射關(guān)系— 開始強(qiáng)調(diào)領(lǐng)域通用語言(domain ubiquitous language),通過語言來提取模型,最終映射到一個(gè)可工作的軟件上。
我們已經(jīng)對(duì)軟件設(shè)計(jì)模式比較熟悉了,他是用于描述和提煉Class和Class關(guān)系的技術(shù)語言。而DDD是一種用于程序員和業(yè)務(wù)溝通的更通用的語言,使用DDD可以最終將代碼映射到模型上。
基礎(chǔ)構(gòu)建
構(gòu)件是DDD中的一些專有名詞,讓我們看一下圖
1限界上下文(Bounded Context)
當(dāng)進(jìn)行領(lǐng)域建模的時(shí)候,任何將其作為一個(gè)整體進(jìn)行建模的嘗試注定會(huì)失敗。因?yàn)楦黝惱嫦嚓P(guān)者和他們對(duì)領(lǐng)域的看法可能完全不同,試圖建立一個(gè)單一的、獨(dú)特的模型來滿足所有需求是完全不可能的,會(huì)把系統(tǒng)搞得極為復(fù)雜。
讓我們看一個(gè)示例圖,這個(gè)圖描述了銷售領(lǐng)域已經(jīng)識(shí)別出的模型
我們把模型元素稍加區(qū)分,成為分離的模型,就可以看出客戶和訂單的,他們是不同上下文的核心的概念。
在這里,我們確定了系統(tǒng)戰(zhàn)略層面的核心部分,這些部分可能都涉及客戶或訂單的概念,但通常不同限界上下文對(duì)它們的屬性感興趣的部分并不相同。比如 Accounting上下文通常對(duì)客戶的計(jì)費(fèi)信息和不同的支付選項(xiàng)感興趣,而Shipping上下文的對(duì)客戶的唯一目標(biāo)是運(yùn)送地址,然后跟蹤訂單。 Order上下文可能通過客戶的訂單項(xiàng)了解商品信息,但實(shí)際上只涉及商品類目基本的內(nèi)容(譯者注:商品規(guī)格、商品詳情這些信息Order上下文并不關(guān)注)。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
詳解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和spring下載
相關(guān)電子資料下載
- SpringBoot物理線程、虛擬線程、Webflux性能比較 37
- Spring Cloud :打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān) 60
- BeanFactory 和 FactoryBean的區(qū)別 54
- SpringBoot AOP + Redis 延時(shí)雙刪功能實(shí)戰(zhàn) 69
- Spring Boot 的設(shè)計(jì)目標(biāo) 104
- Spring Boot的啟動(dòng)原理 125
- SpringBootApplication是什么 200
- Spring Boot怎么通過注解來實(shí)現(xiàn)全局異常處理的 92
- Spring 的線程池應(yīng)用 108
- SpringBoot分布式驗(yàn)證碼登錄方案 145