亚洲成人一区在线观看_天堂网www_国产精品久久9_中文在线播放_伊人天天_久久精品久久久精品美女

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > Domain Model 探索

Domain Model 探索
2010-01-14 22:27:36  作者:  來源:

一直想系統的整理一下自己有關Domain Model實踐的嘗試。但總覺得自己的想法還不夠系統而作罷。
然而從另一方面看“系統的東西”也許永遠做不到,失去了目標的生活該會多乏味。
因此我決定將自己有關Domain Model設計的有關實踐和思考和盤托出,也算是拋磚引玉。歡迎大家
參與討論,遇到同你的觀點相左的地方,希望能以包容的態度來面對,我們是朝同一方向走的伙伴而不是
相互對視的敵人。:)

在深入討論之前我先拋出一些原則和概念,最后你會看到這些概念和原則的威力。
1.按照概念依賴的原則來組織業務層。
2.將業務活動(業務流程)建模成類。
3.用業務活動(業務流程)作為關聯整個業務層各種對象的骨架。
4.在業務活動中鑿出擴展點,使用不同接口分離不同性質業務對象。
5.將對象的存儲理解為業務層概念。
......

概念依賴

這是我認為能否得到良好業務層最重要的概念。
在我系統框架設計將要完成,開始涉及業務層設計時,我腦袋一片空白,書上,大家討論的大多是整個系統的結構從UI層
到服務層到數據訪問層到數據庫。到底業務層該如何組織?Martin Fowler的POEAA的書中沒有回答。找到的相關
書籍也都過于空泛。Martin Fowler的分析模式有些用處,但不夠系統。透過Martin fowler網站,我拿到了
Domain Driven Design的發行前版本。該書給了我很大的啟示。其中的要點有:
關于關聯:
1.Imposing a traversal direction (強制一個關聯的導航方向)
......
關于Responsibility Layers(業務職責層)的劃分:
作者給出了三個指導原則:Conceptual dependency.(概念依賴)為其中一項。
書中給出的描述的是業務職責層上層的對象需要通過下層對象才能在概念上完整,
相反下層對象則可獨立于上層對象存在含義。這樣天然的下層對象相對于上層對象
會更穩定。并且在今后演變的過程中,使同擴展的方式來完善系統,而不是改變對象
的方式。
通過實踐,我覺得這條原則可以應用在任何兩個有關聯的業務對象上。通常可以通過
概念依賴先建立一個導航方向。這能夠滿足大多數的需求。當確實需要反向導航時,
只要理由充分可以隨時加上,并且如果先前將這兩個對象放入不同包中,這時需要
將他們合并到同一個包中。
我見過一個不好的設計。Customer具有很多Flag分別標記該客戶是否掛失,凍結,注銷等等。
通常叫做客戶狀態,然而這是不對的,這違背了單一職責原則。事實上除了注銷外
掛失和凍結都不應該算作Customer的本質屬性。相反我把他們看作某種約束,進而把掛失看作
一種協議.....因為Customer的概念可以不依賴于掛失和凍結的概念,相反掛失和凍結卻要依賴
Customer的概念,應為這是他們動作的主體。
同樣的一開始就讓Customer有GetAccount的方法同樣不好。因為Customer的概念確實不依賴Account
XXXAccount卻可以有Customer的屬性,Account在概念上依賴Customer。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 国产一级一级特黄女人精品毛片 | jizz在线播放 | 欧美精品一区二区在线观看 | 久在线视频 | 一本色道精品久久一区二区三区 | 日韩在线观看一区 | 色135综合网| 亚洲欧美一区二区三区在线 | 天天干在线影院 | 亚洲一区二区福利 | 91天堂在线观看 | 日韩精品在线免费观看 | 免费视频久久久久 | 成人一区二区三区 | 久久国产精品毛片 | 亚洲成人一二区 | 日韩精品 电影一区 亚洲 | 色婷婷综合久久 | 一区二区三区免费 | 波多野结衣 一区二区 | 亚洲精品中文字幕乱码无线 | www中文字幕 | 国产视频久久久 | 欧美色欧美亚洲另类七区 | 免费在线a| 男女羞羞视频在线观看 | av中文字幕第一页 | 国产在线观看高清 | 三级色黄 | 成人在线播放器 | 在线观看 亚洲 | 在线免费中文字幕 | av免费在线观看网址 | 国产精品2区 | 97国产一区二区精品久久呦 | 伊人二区| 亚洲韩国精品 | 久久久久国产精品午夜一区 | 一区二区日韩 | 欧美久久精品 | 国产一区二区三区在线免费观看 |