您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>集成開發(fā)環(huán)境源碼>

詳解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和spring

大?。?/span>0.5 MB 人氣: 2017-09-27 需要積分:1

  領(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)域通用語(yǔ)言(domain ubiquitous language),通過語(yǔ)言來提取模型,最終映射到一個(gè)可工作的軟件上。

  我們已經(jīng)對(duì)軟件設(shè)計(jì)模式比較熟悉了,他是用于描述和提煉Class和Class關(guān)系的技術(shù)語(yǔ)言。而DDD是一種用于程序員和業(yè)務(wù)溝通的更通用的語(yǔ)言,使用DDD可以最終將代碼映射到模型上。

  基礎(chǔ)構(gòu)建

  構(gòu)件是DDD中的一些專有名詞,讓我們看一下圖

  詳解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和spring

  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í)別出的模型

  詳解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和spring

  我們把模型元素稍加區(qū)分,成為分離的模型,就可以看出客戶和訂單的,他們是不同上下文的核心的概念。

  詳解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和spring

  在這里,我們確定了系統(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%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?