亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

領域模型驅動設計(DDD)之模型提煉

2019-11-17 04:51:23
字體:
來源:轉載
供稿:網友

    當java世界提供的可選擇性框架平臺越來越多時,我們可能被平臺架構所深深困擾,而無暇顧及軟件的真正核心:業務建模,其實,業務領域建模同樣是一個比平臺架構更復雜,更需要學習的新的領域。

  相反,在實踐中,我們技術人員在經過冗長的平臺架構學習和實踐后,就匆忙開始項目開發,這時是什么指導他們進行軟件業務實現呢?大部分可能是依靠數據庫建模,甚至是復雜冗長的數據庫存儲過程設計,這些已經開始走向面向對象分析設計的反方向,走上了一條錯誤的軟件開發方向,最終開發出緩慢的、經常當機的Java企業系統?! 〖偃缒銢]有恰當的OO設計思想,Java就會用性能懲罰你,這可能是Java世界的一個潛規則。  那么,一個正確的OOA/OOD/OOP步驟是什么呢?目前圍繞模型驅動設計(MDD)的設計思想成為主流思想,MDA更是在MDD基礎上提升和升華。下面讓我們首先了解,如何使用領域驅動設計思想來分析設計一個軟件系統。  當我們不再對一個新系統進行數據庫提煉時,取而代之的時面向對象的模型提煉。我們必須大刀闊斧地對業務領域進行細分,將一個復雜的業務領域劃分為多個小的子領域,同時還必須分清重點和次要部分,抓住核心領域概念,實現重點突破。核心領域模型  精簡模型,找出核心領域,將業務需求中最有價值的概念體現出來,讓核心變精要,這實際就是一個使復雜問題變簡單的過程,也是對我們軟件設計人員真正能力的考驗?! 『诵念I域模型不是輕易能夠發現,非凡是他處于一個紛亂復雜的眾多領域模型結構中時,核心模型通常是我們某個子領域關注的重點,例如訂單模型是訂單治理領域的核心;消息模型是論壇或消息領域系統的核心?! ∧壳?,分析領域有很多模式來幫助我們來提煉核心模型,例如四色原型、Martin Fowler 的分析模式等,例如MF的"分析模式"(Analysis Patterns)中的記帳模型就是不僅僅用來記錄賬目數值,而且可以記錄和控制賬目的每一次修改。而四色原型則是一種高于分析模式的一種原型基本模式,下面是本人根據四色原型提煉的核心領域模型概念?! ∫话闱闆r下,在企業應用中,核心模型總是在其四周圍繞一些所謂的“衛星”,這實際上也是來自四色原型的一個推論,核心模型和其“衛星”的類圖如下:領域模型驅動設計(DDD)之模型提煉  根據Eric Evans在其“領域驅動設計”一書中定義,領域模型劃分為實體和值對象兩種,實體模型是指業務領域中具有獨立屬性的對象;而值對象則可能是一種Description或狀態或規則。只要有實體對象,就可能存在實體的狀態,狀態跟蹤有時成為一個業務領域使用計算機軟件的首要跟蹤,但是,數據庫不是對象狀態的唯一表達方式,只是一種存儲方式(見狀態對象:數據庫的替代者)?! D中,實體核心對象大部分可能有一種類型,例如核心模型是產品,那么存在產品目錄;核心模型是消息;就存在消息類型;核心模型是信息;總存在信息類別,我們總是使用分類方式來治理業務領域的信息,有時,類別甚至復雜到樹形結構?! 『诵膶嶓w模型有時會有一個1:N關聯的子實體,一般可能表達實體的細節,例如:核心模型是訂單,那么存在訂單條目這樣一個細節,一個訂單中可能有多個訂單條目;假如核心模型是信息,那么存在該信息的多個回復或評論;這樣的關聯一般存在多個業務領域中。模型界面實現  原來,我們以為分析設計階段無需了解實現細節,分析人員只要悶頭做分析UML圖,而無需顧及如何具體實現,其實這是一個誤區。  Eric Evans在其“領域驅動設計”一書中認為:分析人員負責從領域中收集基本概念; 設計則必須指明一組適應編程工具構造的組件,以及這些組件必須能夠在目標環境中有效執行。模型驅動設計(Model-Driven Design)拋棄了分裂分析模型與設計的做法,使用單一的模型來滿足這兩方面的要求。因此,對于核心模型必須把握了解其實現細節?! 牧硗庖粋€方面來說,中國的客戶總是從界面設計來表達他們的意圖(假如中國客戶能夠使用Use Case等UML圖來表達他們概念真是不可想象),例如客戶會說,我希望有一個界面讓我將訂單數據輸入,然后能夠查詢符合查詢條件的訂單。因此,我們的核心模型至少能夠順利地映射到界面實現,相反,這個客戶有這樣訂單界面要求,但是你沒有提供一個與之適應的核心實體模型,界面實現將變得復雜,甚至走很多彎路,誕生不少DTO垃圾對象?! ∫訨donFramework框架實現為例子,框架提供了圍繞核心模型的新增刪除修改查詢(CRUD)功能以及批量功能的快速實現,尤其CRUD功能實現前提是必須提煉出核心模型,從而其界面設計流程就能通過配置立即實現,這樣一步到位實現領域模型到界面的過渡,可以將我們設計核心模型和客戶要求的界面需求能夠做到完整的統一?! ¢_源JdonFramework下載包中message案例實際就是上述核心模型圖的一種實現項目,更復雜的項目可以認為是核心模型的重疊和反復使用(從原理上講,核心模型是四色原型的體現,而四色原型被認為是大部分企業系統的基本組成元素,見[book][UML][Peter Coad]Java Modeling in Color with UML)。
核心模型的選擇  實際項目中,會存在多個核心模型的重疊和覆蓋使用,主要取決于你的領域關注重點?! ±绠斂蛻艉臀覀冋f要做一個旅游網站時,我們必須充分了解需求,它的軟件系統重點是哪些功能。假如當他首先說:我需要一個酒店設備的查詢系統,因為他的客戶對酒店設備非常關注,那么我們可能認為酒店設備是這個領域模型的核心;酒店設備。假如他又進行描述:我需要一個界面,客戶在輸入酒店資料時,選擇多個酒店設備,那么在這樣一個關注領域,核心模型實際是酒店,而酒店設備可能成為酒店的一個特征實體屬性,甚至是值對象了?! ∫赃M銷存系統為例子,在采購系統中,采購單是一個核心實體模型,而原材料是一種輔助實體模型;在庫存系統中,入出庫單是一個核心實體模型,原材料或成品代表的是一個庫存物品概念模型,當需要庫存報表查詢輸出,可以立即計算出來,或將結果緩存起來,緩存起來的結果其實是庫存物品對象的狀態,可以使用值對象來實現。核心模型的精練  當核心模型被定位和確定后,相當于我們抓住領域本質,這時我們可以使用面向對象的概念對模型進行精練細化,實際就是明確對象的屬性,確定模型對象的邊界,通過反復重構,結合GoF等設計模式,使得我們得模型準確反映本質,從而實現模型的靈活性設計。所有這些,都是數據表驅動設計所不能實現的。那你還抱著數據庫建模干什么呢?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩精品久久奇米色影视| 欧美亚洲视频在线看网址| 欧美一级电影在线| 国产一区视频在线播放| 最近2019免费中文字幕视频三| 成人午夜激情免费视频| 国产精品精品一区二区三区午夜版| 国产精品精品视频一区二区三区| 久久在线观看视频| 欧美激情精品在线| 亚洲三级免费看| 青青草一区二区| 在线国产精品播放| 日韩高清电影免费观看完整版| 亚洲在线第一页| 久久久久久噜噜噜久久久精品| 成人免费在线网址| 国产精品永久免费观看| 最近2019好看的中文字幕免费| 亚洲aⅴ日韩av电影在线观看| 欧美中文字幕在线播放| 国产精品18久久久久久麻辣| 国产精品视频一区二区高潮| 国产精品三级久久久久久电影| 欧美性猛交xxxx偷拍洗澡| 欧亚精品在线观看| 美女精品视频一区| 日韩精品视频中文在线观看| 精品国产一区二区三区在线观看| 97超视频免费观看| 久久精品视频va| 久久成人精品一区二区三区| 欧美亚洲成人精品| 日韩中文字幕不卡视频| 亚洲免费视频观看| www.亚洲天堂| 精品成人乱色一区二区| 成人a视频在线观看| 欧美激情一区二区三区成人| 55夜色66夜色国产精品视频| 国产成人精品av| 亚洲www视频| 丝袜情趣国产精品| 97在线看免费观看视频在线观看| 国产欧美一区二区三区四区| 亚洲欧洲一区二区三区在线观看| 亚洲一区二区久久| 国内精品久久久久影院优| 欧美激情在线有限公司| 国产精品久久久久久久美男| 国产成人综合亚洲| 国产日本欧美在线观看| 久久免费视频观看| 亚洲女同性videos| 4k岛国日韩精品**专区| 成人中文字幕在线观看| 欧美视频国产精品| 成人av电影天堂| 亚洲国产精彩中文乱码av在线播放| 9.1国产丝袜在线观看| 在线观看日韩欧美| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲视频网站在线观看| 热草久综合在线| 亚洲自拍在线观看| 日韩av大片免费看| 日韩中文字幕av| 91网站在线免费观看| 国产成人精品视| 国产日韩欧美在线播放| 大量国产精品视频| 成人日韩在线电影| 国产精品视频免费在线观看| 亚洲性生活视频在线观看| 亚洲精品999| 亚洲国产中文字幕久久网| 日韩亚洲欧美成人| 97久久伊人激情网| 91麻豆桃色免费看| 国产成人精品免费久久久久| 欧洲亚洲免费在线| 日本久久久a级免费| 中文字幕欧美精品在线| 亚洲精品v欧美精品v日韩精品| 日本伊人精品一区二区三区介绍| 国产精品成人观看视频国产奇米| 国产一区二区三区高清在线观看| 这里只有精品丝袜| 国产视频在线一区二区| 日本一欧美一欧美一亚洲视频| 亚洲精品中文字幕有码专区| 中文字幕在线成人| 北条麻妃99精品青青久久| www.日韩.com| 日本免费在线精品| 亚洲色图校园春色| 亚洲尤物视频网| 日韩精品在线视频美女| 欧美亚洲国产视频小说| 黑人精品xxx一区| 国产成人精品一区二区三区| 日韩在线视频二区| 亚洲视频视频在线| 成人黄色片在线| 亚洲精品第一国产综合精品| 久久资源免费视频| 国产精品一区二区在线| 97国产在线观看| 欧美日韩综合视频网址| 精品久久香蕉国产线看观看亚洲| 国产日韩中文字幕在线| 色多多国产成人永久免费网站| 69av在线播放| 久久久亚洲天堂| 在线观看精品国产视频| 亚洲精品综合久久中文字幕| 成人97在线观看视频| 国产精品第二页| 国产精品久久久久久久久久三级| 日韩电影免费观看在线观看| 日韩成人小视频| 国内精品久久久久伊人av| 国产精品高潮在线| 亚洲成年人在线播放| 国产精品视频区| 亚洲国产精品国自产拍av秋霞| 亚洲精品久久久久中文字幕欢迎你| 久久久国产精品一区| 午夜精品久久久久久99热软件| 国产噜噜噜噜噜久久久久久久久| 久久久亚洲欧洲日产国码aⅴ| 久久久视频精品| 欧美性高潮床叫视频| 亚洲乱亚洲乱妇无码| 久久夜色精品国产欧美乱| 亚洲国产成人久久综合一区| 国产精品久久久久高潮| 深夜福利91大全| 欧美猛交免费看| 日韩欧美国产免费播放| 日韩av免费在线播放| xvideos国产精品| 日韩精品极品视频| 国产一区二区三区在线观看视频| 国产91亚洲精品| 一本色道久久88综合亚洲精品ⅰ| 国产成人一区二区三区| 亚洲视频网站在线观看| 中文一区二区视频| 国产精品劲爆视频| 中文字幕视频一区二区在线有码| 欧美日韩另类在线| 亚洲午夜精品久久久久久久久久久久| 色偷偷88888欧美精品久久久| 综合久久五月天| 久久男人的天堂| 亚洲成人教育av| 欧美一级片久久久久久久| 色偷偷av一区二区三区乱| 上原亚衣av一区二区三区| 国产精品wwwwww| 国产成人欧美在线观看| 日韩中文在线中文网三级| 日韩精品在线观|