麻豆传媒视频在线,国产91精品不卡视频,欧美jizz19性欧美,污视频网站在线观看,91涩漫在线观看,伊人发布在线,九色porny丨首页在线,福利视频一区,久久av网址,久久人人视频

當(dāng)前位置:首頁(yè) > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 談一談貧血的Domain Logic問(wèn)題。

談一談貧血的Domain Logic問(wèn)題。
2010-01-14 22:28:10  作者:  來(lái)源:
如今采用Hibernate實(shí)現(xiàn)的Domain Model,多數(shù)只是維護(hù)實(shí)體之間的關(guān)聯(lián),而大多數(shù)的業(yè)務(wù)邏輯,則是由Service Layer來(lái)實(shí)現(xiàn)。

這樣的模型對(duì)象擁有的行為太少了,以至于Martin Fowler給他們下了一個(gè)定義:貧血模型。

我們知道,高內(nèi)聚低耦合是衡量一個(gè)模型設(shè)計(jì)是否合理的重要標(biāo)準(zhǔn)之一。對(duì)象組件間合理分工協(xié)作可以解決復(fù)雜的問(wèn)題邏輯,按照這個(gè)標(biāo)準(zhǔn),我們似乎可以很自然的各種行為封裝到各個(gè)模型對(duì)象中。 然而,現(xiàn)在絕大多數(shù)的應(yīng)用沒(méi)有這樣做。

ORM作為模型對(duì)象與數(shù)據(jù)庫(kù)模型之間的接口,它的引入無(wú)疑承擔(dān)了實(shí)體領(lǐng)域模型所能稱之為領(lǐng)域模型的 所有責(zé)任。 正如同Martin Fowler所說(shuō)的,貧血的領(lǐng)域模型承擔(dān)了領(lǐng)域模型的所有成本,卻沒(méi)有得到真正的收益。
在這里,真正的收益應(yīng)該是指高內(nèi)聚低耦合的擁有復(fù)雜對(duì)象行為的領(lǐng)域模型,確實(shí),我們?cè)O(shè)計(jì)的領(lǐng)域模型根本沒(méi)有實(shí)現(xiàn)任何的功能,我們只能在外面從新設(shè)計(jì)一個(gè) Service Layer來(lái)管理所有的行為。

我不敢評(píng)論這樣的設(shè)計(jì)方案是怎樣的不合理。 當(dāng)設(shè)計(jì)到擁有比較復(fù)雜問(wèn)題領(lǐng)域模型的時(shí)候,這種只負(fù)責(zé)管理實(shí)體間關(guān)聯(lián)關(guān)系的實(shí)體模型肯定不能適應(yīng),這樣做的后果就是將復(fù)雜領(lǐng)域邏輯統(tǒng)統(tǒng) 移植到 Service Layer層或者胡亂給起名字的一個(gè)外層。

考慮Martin Fowler 《Analysis Patterns》中著名的一個(gè)通用模型:團(tuán)體責(zé)任模型。里面的約束需要在實(shí)體領(lǐng)域模型中得以實(shí)現(xiàn),在貧血領(lǐng)域模型中,封裝實(shí)現(xiàn)這樣的需要檢索 驗(yàn)證某個(gè)甚至全部實(shí)體數(shù)據(jù)的行為只能移植到Service Layer中。 這樣的移植對(duì)于領(lǐng)域模型的構(gòu)架無(wú)疑大大增加了復(fù)雜度。


那么,我們能不能在貧血領(lǐng)域模型基礎(chǔ)上,加入對(duì)象行為,使之擁有豐富的行為呢? 我想這是可以解決的,解決的關(guān)鍵是將可訪問(wèn)底層實(shí)體數(shù)據(jù)的行為賦予每一個(gè)實(shí)體模型對(duì)象,最簡(jiǎn)便的辦法就是用一個(gè)全局訪問(wèn)點(diǎn)來(lái)實(shí)現(xiàn)。

考慮這么一個(gè)層次:
Java代碼 復(fù)制代碼
  1. public interface ServiceProvider{   
  2.                 public Object getService(String serviceName);;   
  3.           
  4. }   
  5.   
  6.   
  7. public ServiceProviderImpl{   
  8.               public ObjectgetService(String serviceName);{   
  9.                 
  10.                     return ServiceLocator.getService(serbiceName  );;   
  11.              }   
  12.                   
  13. }   
  14.   
  15. public interface CRUD{   
  16.      public void save();;   
  17.       public void delete();;   
  18.        public void load(Long id);;   
  19.       public void update();;   
  20. }   
  21.   
  22. public Group implements CRUD {   
  23.   
  24.     private String name;   
  25.      private List  users;   
  26.       public GroupService getGroupService();{   
  27.            return (GroupService);getServiceProvider();.getService(this.class.getName();+"Service");   
  28.       }   
  29.      public void save();{   
  30.           if(getGroupService();.findGroupByName(name);!=null);   
  31.                        throw new RuntimeExepion("duplicate group name!");;   
  32.           getGroupService();.save(this);;   
  33.       }   
  34.       public  Group load(Long id);{   
  35.            this=getGroupService();.load(this.class,id);;   
  36.            return this;   
  37.       }   
  38.          
  39.      public void addUser(user user);{   
  40.                 
  41.             users.add(user);;   
  42.             this.save();;    
  43.         
  44.     }   
  45.      public void removeUser(User user);{   
  46.      }   
  47.   
  48.         
  49.   
  50. }  

這樣作的問(wèn)題是與建立貧血對(duì)象模型相比,領(lǐng)域?qū)ο竽P偷男袨橥ㄓ眯枰猄erviceLayer來(lái)完成,約定:
1)ServiceLayer層只負(fù)責(zé)實(shí)現(xiàn)簡(jiǎn)單的單步驟的與底層數(shù)據(jù)庫(kù)訪問(wèn)的 邏輯,不包含任何業(yè)務(wù)領(lǐng)域邏輯。 如上面的 service.save(),service.update, service.delete , service.findGroupByName.... 

2) 領(lǐng)域模型對(duì)象負(fù)責(zé)對(duì)自身的領(lǐng)域邏輯進(jìn)行封裝。

3)通過(guò)賦予模型對(duì)象行為,建立對(duì)象間行為關(guān)聯(lián),以完成更復(fù)雜的 商業(yè)邏輯。

4)外層業(yè)務(wù)邏輯層只能看到領(lǐng)域模型對(duì)象,不能直接操作任何的類似Service.save這樣的直接訪問(wèn)底層數(shù)據(jù)庫(kù)的行為。

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
欧美另类变人与禽xxxxx| 亚洲国产成人在线视频| 日本免费不卡| 亚洲综合成人在线| 欧美成a人片免费观看久久五月天| 激情综合闲人网| 欧美国产欧美综合| 成人黄色av网| 色婷婷一区二区三区四区| 日本动漫理论片在线观看网站| 青青草97国产精品免费观看| 欧美激情精品久久久久久黑人| 成人影院在线视频| 26uuu欧美| 欧美电影免费观看高清完整| 色域天天综合网| 秋霞影视一区二区三区| abab456成人免费网址| 久久九九国产精品怡红院| 婷婷久久国产对白刺激五月99| 欧美一级片久久久久久久| 免费亚洲电影在线| 国产精品视频自拍| 国产成人在线看| 色网在线免费观看| 国产午夜精品美女视频明星a级| 亚洲一卡久久| 成人在线观看黄色| 亚洲欧美日韩高清| 97超碰蝌蚪网人人做人人爽| 亚洲日产av中文字幕| 国产一区二区在线免费| 国产精品老女人精品视频| 国产毛片一区| 欧美69wwwcom| a黄色在线观看| 91福利精品视频| 亚欧美无遮挡hd高清在线视频| 国产精品a久久久久久| 亚州成人在线电影| 日韩黄色av| 欧洲一区二区视频| 日韩亚洲欧美成人一区| 日韩精品综合一本久道在线视频| 亚洲黄色有码视频| 日韩视频免费直播| 亚洲精品中文字| 狠狠躁夜夜躁人人爽天天天天97 | 校园春色另类视频| 国产精品一区二区在线| 色综合色狠狠天天综合色| 国产欧美一区二区色老头| 9999在线精品视频| 99久久人爽人人添人人澡| heyzo高清中文字幕在线| 亚洲成人一区在线观看| 88久久精品| 亚洲91久久| 久久99精品视频| 亚洲欧洲av一区二区三区久久| 在线精品视频免费观看| 亚洲欧美成人网| 国产成人av在线播放| 午夜在线观看91| 成人天堂yy6080亚洲高清| 国产精品探花在线观看| 琪琪一区二区三区| 亚洲男人的天堂在线观看| 日韩一二三四区| 久久久久久久网站| av资源在线观看免费高清| 国产精品日韩精品欧美精品| 国产精品毛片一区二区三区| 久久久精品欧美丰满| 欧美日韩中文字幕精品| 中文字幕精品久久久久| 成人h视频在线观看播放| 免费污视频在线观看| 午夜精品福利影院| 日韩成人一级大片| 国产精品理论片| 亚洲精品一区二区三区蜜桃下载 | 精品国产依人香蕉在线精品| 色8久久人人97超碰香蕉987| 91福利国产成人精品照片| 久久久精品国产99久久精品芒果| 另类春色校园亚洲| 伊人久久综合一区二区| av文字幕在线观看| 深夜福利免费在线观看| 岛国成人毛片| 久久九九久精品国产免费直播| 欧美性黄网官网| 国产一区二区日韩| 香蕉视频在线观看免费| 国产香蕉久久| 精品国产乱码久久久久久虫虫漫画| 日韩欧美国产中文字幕| 欧美另类暴力丝袜| 欧美三级黄网| 视频在线不卡免费观看| 国产欧美日韩综合精品一区二区| 亚洲精品久久久久国产| 国产精品免费在线免费| 24小时免费看片在线观看| 韩日在线一区| 亚洲h动漫在线| 97免费在线视频| 僵尸再翻生在线观看免费国语| 国产精品毛片一区二区在线看| a在线播放不卡| 亚洲激情视频在线观看| 男人久久精品| 欧美日本免费| 欧美精品欧美精品系列| 青青草观看免费视频在线 | 狠狠干综合网| 色综合久久久久| videoxxxx另类日本极品| 99精品视频在线观看播放| 婷婷亚洲久悠悠色悠在线播放| 4hu永久免费入口| 色一区二区三区四区| 色综合久久九月婷婷色综合| 亚洲精品一区视频| 在线播放精品| 亚洲高清久久网| 日产福利视频在线观看| 99精品桃花视频在线观看| 九九视频这里只有精品| 亚洲网站免费| 中文字幕一区二区三区四区不卡| 国产精品人成电影| sdde在线播放一区二区| 色激情天天射综合网| 天天在线女人的天堂视频| 中文久久精品| 日韩黄色高清视频| 忘忧草在线影院两性视频| 理论片一区二区在线| 成人av在线网站| 国内福利写真片视频在线| 亚洲调教一区| 久久久久久久久久看片| 色诱女教师一区二区三区| 伊人免费在线| 成人一级黄色片| 欧美高清视频一二三区 | 久久国产视频网站| 成人精品在线| 中文字幕一区三区| 黄页网址大全在线播放| 亚洲一区二区免费看| 色先锋资源久久综合5566| 中文字幕视频精品一区二区三区| 欧美性xxxxx| 羞羞电影在线观看www| 久久精品在这里| 日本中文字幕电影| 毛片一区二区| 久久精品国产亚洲一区二区| 久久97精品| 91麻豆精品91久久久久久清纯 | h片在线观看网站| 国产亚洲视频系列| 又黄又www的网站| 日日欢夜夜爽一区| 欧美高清视频在线播放| 欧美日韩一区二区综合 | 欧美在线国产精品| 欧美freesex交免费视频| 亚洲视频在线播放| 亚洲第一福利社区| 亚洲国产精品999| 国产日韩一区二区三免费高清| 在线区一区二视频| 中文字幕乱码中文乱码51精品| 亚洲成av人片观看| 爱啪视频在线观看视频免费| 亚洲欧洲日产国码二区| aaa在线免费观看| 国产精品福利电影一区二区三区四区| 亚洲成人av高清| 91久久奴性调教| 婷婷六月国产精品久久不卡| 日本欧美一区二区三区乱码| 日韩精品专区在线影院重磅| 91av在线播放| 中文字幕一区二区三区在线视频| 色妞色视频一区二区三区四区| 国产精品免费不| 自拍偷拍亚洲一区| 欧美一级本道电影免费专区| 国产视频精品一区二区三区| 自拍偷拍精品| 丝袜一区二区三区| 国自产拍偷拍福利精品免费一| 性色av一区二区三区| 日韩和欧美的一区| 嫩草影院官网|