創(chuàng)新互聯(lián)建站是一家專業(yè)提供禹城企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為禹城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
光 明新零售模式,光明新零售模式開發(fā)(fzb威246性724),光明新零售模式開發(fā)案例,(內(nèi)容忽視,詳情+v)
如果一個(gè)聚合只有一個(gè)實(shí)體,那么這個(gè)實(shí)體就是聚合根;如果有多個(gè)實(shí)體,那么我們可以思考聚合內(nèi)哪個(gè)對(duì)象有獨(dú)立存在的意義并且可以和外部直接進(jìn)行交互。
倉(cāng)儲(chǔ)被設(shè)計(jì)出來(lái)的原因:領(lǐng)域模型中的對(duì)象自從創(chuàng)建后不會(huì)一直留在內(nèi)存活動(dòng),當(dāng)它不活動(dòng)時(shí)會(huì)被持久化到DB中,當(dāng)需要的時(shí)候會(huì)重建該對(duì)象。所以,重建對(duì)象是一個(gè)和DB打交道的過(guò)程,需要提供一種機(jī)制,提供類似集合的接口來(lái)幫助我們 管理對(duì)象。
倉(cāng)儲(chǔ)里存放的對(duì)象一定是聚合,因?yàn)橹疤岬降念I(lǐng)域模型是以聚合的概念來(lái)劃分邊界的。我們 只對(duì)聚合設(shè)計(jì)倉(cāng)儲(chǔ) ,把整個(gè)聚合看成一個(gè)整體,要么一起取出來(lái),要么一起被刪除,不會(huì)單獨(dú)對(duì)某個(gè)聚合內(nèi)的子對(duì)象進(jìn)行單獨(dú)查詢和更新。倉(cāng)儲(chǔ)還有一個(gè)重要的特征就是分為倉(cāng)儲(chǔ)定義部分和倉(cāng)儲(chǔ)實(shí)現(xiàn)部分,在領(lǐng)域模型中定義倉(cāng)儲(chǔ)的接口,而在基礎(chǔ)設(shè)施層實(shí)現(xiàn)具體的倉(cāng)儲(chǔ)。
根據(jù)需求建立初步的領(lǐng)域模型,識(shí)別明顯的領(lǐng)域概念和之間的關(guān)聯(lián)(1:1, 1:n的關(guān)系),用文字精確沒(méi)有歧義的描述出每個(gè)領(lǐng)域概念的含義;
分析主要的軟件功能,識(shí)別主要的應(yīng)用層的類,這樣有助于及早發(fā)現(xiàn)哪些是應(yīng)用層的職責(zé),哪些是領(lǐng)域?qū)拥穆氊?zé);
進(jìn)一步分析領(lǐng)域模型,識(shí)別出實(shí)體、值對(duì)象、領(lǐng)域服務(wù);
分析關(guān)聯(lián),通過(guò)對(duì)業(yè)務(wù)的深入分析和軟件設(shè)計(jì)原則及性能方面的權(quán)衡,明確關(guān)聯(lián)的方向,去掉一些不需要的關(guān)聯(lián);
找出聚合邊界及聚合根,在分析過(guò)程中會(huì)出現(xiàn)難以清洗判斷的選擇問(wèn)題,這就依賴平時(shí)分析經(jīng)驗(yàn)的積累了;
為聚合根配置倉(cāng)儲(chǔ),一般情況下為一個(gè)聚合分配一個(gè)倉(cāng)儲(chǔ),此時(shí)設(shè)計(jì)好倉(cāng)儲(chǔ)的接口即可;
遍歷所有場(chǎng)景,確定設(shè)計(jì)的領(lǐng)域模型能有效解決業(yè)務(wù)需求;
考慮如何創(chuàng)建實(shí)體和值對(duì)象,是通過(guò)工廠還是構(gòu)造函數(shù);
重構(gòu)模型,尋找模型中有疑問(wèn)或蹩腳的地方,比如思考:聚合的設(shè)計(jì)是否正確,模型的性能等等;
領(lǐng)域建模是一個(gè)不斷重構(gòu),持續(xù)完善的過(guò)程,大家會(huì)在討論中將變化的部分反映到模型中,從而模型不斷細(xì)化并朝正確的方向走。
現(xiàn)實(shí)世界中的領(lǐng)域包括 問(wèn)題空間(Problem Space)和 解決方案空間(Solution Space):
問(wèn)題空間:是核心域和其他子域的組合,思考的是 業(yè)務(wù)面臨的挑戰(zhàn)
解決方案空間:一組特定的 軟件模型,包括一個(gè)或多個(gè)限界上下文,思考的是如何實(shí)現(xiàn)軟件(限界上下文 即是一個(gè) 特定的解決方案,通過(guò)軟件的方式實(shí)現(xiàn)解決方案)以 解決這些業(yè)務(wù)挑戰(zhàn)
一個(gè) 顯式的邊界(主要是一個(gè)語(yǔ)義上的邊界),領(lǐng)域模型便存在于這個(gè)邊界之內(nèi);每一個(gè)模型概念(包括它的屬性和操作)在邊界之內(nèi)都具有特殊的含義;
一個(gè) 給定的業(yè)務(wù)領(lǐng)域 會(huì)包含多個(gè)限界上下文,想與一個(gè)限界上下文溝通,則需要通過(guò)顯示邊界進(jìn)行通信;系統(tǒng)通過(guò)確定的限界上下文來(lái)進(jìn)行解耦,而每一個(gè)上下文內(nèi)部緊密組織,職責(zé)明確,具有較高的內(nèi)聚性;
一個(gè)很形象的隱喻:細(xì)胞質(zhì)所以能夠存在,是因?yàn)榧?xì)胞膜限定了什么在細(xì)胞內(nèi),什么在細(xì)胞外,并且確定了什么物質(zhì)可以通過(guò)細(xì)胞膜(引用);
對(duì) 領(lǐng)域中 所發(fā)生的事件(領(lǐng)域?qū)<宜P(guān)心的發(fā)生在領(lǐng)域中的一些事件)進(jìn)行建模,即 領(lǐng)域事件(領(lǐng)域模型 的組成部分)
領(lǐng)域事件的特點(diǎn)
領(lǐng)域事件 用來(lái)捕獲領(lǐng)域中發(fā)生的一些事情,開始使用領(lǐng)域事件時(shí),要 對(duì)不同的事件進(jìn)行定義;
“當(dāng)...時(shí),請(qǐng)通知我” 等等場(chǎng)景
限界上下文內(nèi),觀察者模式 是一種簡(jiǎn)單高效的發(fā)布領(lǐng)域事件的方法;
限界上下文外,利用 消息機(jī)制 將本地限界上下文產(chǎn)生的事件發(fā)送到 遠(yuǎn)程限界上下文 中(我們要保證 所有限界上下文 的最終一致性);
網(wǎng)頁(yè)名稱:光明新零售模式(模式開發(fā))
轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article48/gdjchp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網(wǎng)站制作、用戶體驗(yàn)、品牌網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)