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