JAVA領域模型之失血貧血充血脹血

JAVA領域模型之失血貧血充血脹血

ID:38215538

大小:29.66 KB

頁數(shù):11頁

時間:2019-06-07

JAVA領域模型之失血貧血充血脹血_第1頁
JAVA領域模型之失血貧血充血脹血_第2頁
JAVA領域模型之失血貧血充血脹血_第3頁
JAVA領域模型之失血貧血充血脹血_第4頁
JAVA領域模型之失血貧血充血脹血_第5頁
資源描述:

《JAVA領域模型之失血貧血充血脹血》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、為了補大家的遺憾,在此總結下ROBBIN的領域模型的一些觀點和大家的補充,在網站和演講中,robbin將領域模型初步分為4大類:1,失血模型2,貧血模型3,充血模型4,脹血模型那么讓我們看看究竟有這些領域模型的具體內容,以及他們的優(yōu)缺點:一、失血模型失血模型簡單來說,就是domainobject只有屬性的getter/setter方法的純數(shù)據類,所有的業(yè)務邏輯完全由businessobject來完成(又稱TransactionScript),這種模型下的domainobject被MartinFowler稱之為“貧血的domainobject”。下面用舉一個具體的代碼來說明,代碼來自Hib

2、ernate的caveatemptor,但經過我的改寫:一個實體類叫做Item,指的是一個拍賣項目一個DAO接口類叫做ItemDao一個DAO接口實現(xiàn)類叫做ItemDaoHibernateImpl一個業(yè)務邏輯類叫做ItemManager(或者叫做ItemService)java代碼:??publicclassItemimplementsSerializable{????privateLongid=null;????privateintversion;????privateStringname;????privateUserseller;????privateStringdescripti

3、on;????privateMonetaryAmountinitialPrice;????privateMonetaryAmountreservePrice;????privateDatestartDate;????privateDateendDate;????privateSetcategorizedItems=newHashSet();????privateCollectionbids=newArrayList();????privateBidsuccessfulBid;????privateItemStatestate;????privateUserapprovedBy;????p

4、rivateDateapprovalDatetime;????privateDatecreated=newDate();????//??getter/setter方法省略不寫,避免篇幅太長}java代碼:??publicinterfaceItemDao{????publicItemgetItemById(Longid);????publicCollectionfindAll();????publicvoidupdateItem(Itemitem);}ItemDao定義持久化操作的接口,用于隔離持久化代碼。java代碼:??publicclassItemDaoHibernateImplim

5、plementsItemDaoextendsHibernateDaoSupport{????publicItemgetItemById(Longid){????????return(Item)getHibernateTemplate().load(Item.class,id);????}????publicCollectionfindAll(){????????return(List)getHibernateTemplate().find("fromItem");????}????publicvoidupdateItem(Itemitem){????????getHibernateTem

6、plate().update(item);????}}ItemDaoHibernateImpl完成具體的持久化工作,請注意,數(shù)據庫資源的獲取和釋放是在ItemDaoHibernateImpl里面處理的,每個DAO方法調用之前打開Session,DAO方法調用之后,關閉Session。(Session放在ThreadLocal中,保證一次調用只打開關閉一次)java代碼:??publicclassItemManager{????privateItemDaoitemDao;????publicvoidsetItemDao(ItemDaoitemDao){this.itemDao=itemDa

7、o;}????publicBidloadItemById(Longid){????????itemDao.loadItemById(id);????}????publicCollectionlistAllItems(){????????return??itemDao.findAll();????}????publicBidplaceBid(Itemitem,Userbidder,MonetaryAmountbidAmount,???

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。