国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 總結一下最近關于domain object以及相關的討論

總結一下最近關于domain object以及相關的討論
2010-01-14 22:28:47  作者:  來源:
在最近的圍繞domain object的討論中浮現出來了三種模型,(還有一些其他的旁枝,不一一分析了),經過一番討論,各種問題逐漸清晰起來,在這里我試圖做一個總結,便于大家了解和掌握。

第一種模型:只有getter/setter方法的純數據類,所有的業務邏輯完全由business object來完成(又稱TransactionScript),這種模型下的domain object被Martin Fowler稱之為“貧血的domain object”。下面用舉一個具體的代碼來說明,代碼來自Hibernate的caveatemptor,但經過我的改寫:

一個實體類叫做Item,指的是一個拍賣項目
一個DAO接口類叫做ItemDao
一個DAO接口實現類叫做ItemDaoHibernateImpl
一個業務邏輯類叫做ItemManager(或者叫做ItemService)

Java代碼 復制代碼
  1. public class Item implements Serializable {   
  2.     private Long id = null;   
  3.     private int version;   
  4.     private String name;   
  5.     private User seller;   
  6.     private String description;   
  7.     private MonetaryAmount initialPrice;   
  8.     private MonetaryAmount reservePrice;   
  9.     private Date startDate;   
  10.     private Date endDate;   
  11.     private Set categorizedItems = new HashSet();   
  12.     private Collection bids = new ArrayList();   
  13.     private Bid successfulBid;   
  14.     private ItemState state;   
  15.     private User approvedBy;   
  16.     private Date approvalDatetime;   
  17.     private Date created = new Date();   
  18.     //  getter/setter方法省略不寫,避免篇幅太長   
  19. }  


Java代碼 復制代碼
  1. public interface ItemDao {   
  2.     public Item getItemById(Long id);   
  3.     public Collection findAll();   
  4.     public void updateItem(Item item);   
  5. }  


ItemDao定義持久化操作的接口,用于隔離持久化代碼。

Java代碼 復制代碼
  1. public class ItemDaoHibernateImpl implements ItemDao extends HibernateDaoSupport {   
  2.     public Item getItemById(Long id) {   
  3.         return (Item) getHibernateTemplate().load(Item.class, id);   
  4.     }   
  5.     public Collection findAll() {   
  6.         return (List) getHibernateTemplate().find("from Item");   
  7.     }   
  8.     public void updateItem(Item item) {   
  9.         getHibernateTemplate().update(item);   
  10.     }   
  11. }  

ItemDaoHibernateImpl完成具體的持久化工作,請注意,數據庫資源的獲取和釋放是在ItemDaoHibernateImpl里面處理的,每個DAO方法調用之前打開Session,DAO方法調用之后,關閉Session。(Session放在ThreadLocal中,保證一次調用只打開關閉一次)

Java代碼 復制代碼
  1. public class ItemManager {   
  2.     private ItemDao itemDao;   
  3.     public void setItemDao(ItemDao itemDao) { this.itemDao = itemDao;}   
  4.     public Bid loadItemById(Long id) {    
  5.         itemDao.loadItemById(id);   
  6.     }   
  7.     public Collection listAllItems() {   
  8.         return  itemDao.findAll();   
  9.     }   
  10.     public Bid placeBid(Item item, User bidder, MonetaryAmount bidAmount,   
  11.                         Bid currentMaxBid, Bid currentMinBid) throws BusinessException {   
  12.             if (currentMaxBid != null && currentMaxBid.getAmount().compareTo(bidAmount) > 0) {   
  13.         throw new BusinessException("Bid too low.");   
  14.     }   
  15.        
  16.     // Auction is active   
  17.     if ( !state.equals(ItemState.ACTIVE) )   
  18.         throw new BusinessException("Auction is not active yet.");   
  19.        
  20.     // Auction still valid   
  21.     if ( item.getEndDate().before( new Date() ) )   
  22.         throw new BusinessException("Can't place new bid, auction already ended.");   
  23.        
  24.     // Create new Bid   
  25.     Bid newBid = new Bid(bidAmount, item, bidder);   
  26.        
  27.     // Place bid for this Item   
  28.     item.getBids().add(newBid);   
  29.     itemDao.update(item);     //  調用DAO完成持久化操作   
  30.     return newBid;   
  31.     }   
  32. }  


事務的管理是在ItemManger這一層完成的,ItemManager實現具體的業務邏輯。除了常見的和CRUD有關的簡單邏輯之外,這里還有一個placeBid的邏輯,即項目的競標。

以上是一個完整的第一種模型的示例代碼。在這個示例中,placeBid,loadItemById,findAll等等業務邏輯統統放在ItemManager中實現,而Item只有getter/setter方法。

安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
相關熱詞搜索:
国产精品一区二区精品_久久小视频_天堂va在线观看_99久久夜色精品国产亚洲96_日本手机在线视频_av成人免费
<button id="0mgmq"><pre id="0mgmq"></pre></button>
  • <tr id="0mgmq"></tr>
  • <abbr id="0mgmq"><source id="0mgmq"></source></abbr> <button id="0mgmq"></button>
  • 欧美欧美天天天天操| 久久综合狠狠| 亚洲一区二区精品在线| 99在线观看| 美日韩免费视频| 亚洲经典在线看| 激情偷拍久久| 国产精品jizz在线观看美国| 午夜精品一区二区三区四区| 极品校花啪啪激情久久| 99免费在线视频观看| 裸体丰满少妇做受久久99精品| 激情综合视频| 亚洲三级色网| 国产一区91| 国产欧美69| 每日更新成人在线视频| 国产精品久久久久久久久久妞妞| 1024成人| 国产精品久久久久9999高清| 日韩网站在线| 一区二区av| 亚洲影院在线| aaa级精品久久久国产片| 懂色av一区二区三区在线播放| 久久av二区| 成人黄动漫网站免费| 国产一区二区三区无遮挡| 国产精品一 二 三| 欧美不卡三区| 日本成人三级| 一区二区三区电影| 欧美黄污视频| 在线一区亚洲| 欧美综合国产| 精选一区二区三区四区五区| 久久免费99精品久久久久久| 日本一区二区精品视频| 日韩偷拍一区二区| 欧美一区激情| 在线亚洲自拍| 超碰97在线播放| 欧洲亚洲一区二区| 一本色道久久99精品综合| 欧美日韩在线精品| 国产亚洲一区在线| 国产精品乱子乱xxxx| 日本黑人久久| 亚洲精品护士| 99三级在线| 杨幂一区欧美专区| 国产精品久久久久久久久久直播| av蓝导航精品导航| 翔田千里亚洲一二三区| 亚洲国产一区二区三区在线播| 美女久久网站| 日本精品一区二区三区不卡无字幕| 午夜欧美一区二区三区免费观看| 欧美黄色大片网站| 99超碰麻豆| 亚洲一区3d动漫同人无遮挡| 亚洲精品日韩久久| 成人黄动漫网站免费| 亚洲午夜精品久久久中文影院av | 欧美激情第六页| 正在播放91九色| 新狼窝色av性久久久久久| 欧美一区1区三区3区公司| 国产自产在线视频一区| 成人精品水蜜桃| 欧美日韩精品免费观看视一区二区| 美女精品国产| 欧美黄色aaaa| 国产偷久久久精品专区| 亚洲国产高清一区| 精品久久久久久中文字幕动漫| 一区二区不卡视频| 99理论电影网| 亚洲国产专区| 在线不卡日本| 成人免费视频观看视频| 伊人久久av导航| 日韩中文字幕一区| 91福利视频导航| 黄色成人在线网站| 久久久久久久久一区| 国产一区二区高清不卡| 亚洲图片都市激情| 麻豆亚洲一区| 国产精品亚洲综合| 欧美日韩在线精品| 亚洲国产精品一区二区第四页av| 欧美在线综合| 亚洲国产导航| 欧美日韩另类丝袜其他| 蜜桃欧美视频| 国产伦精品一区二区三区高清版| aa国产精品| 极品尤物久久久av免费看| 亚洲精品在线视频观看| 精品蜜桃一区二区三区| 97自拍视频| 久久人人精品| 国产亚洲永久域名| 极品中文字幕一区| 国产专区一区| 国产精品v欧美精品v日韩| 小说区图片区图片区另类灬| 免费在线成人av| 久久久久久国产精品免费免费| 久久久久国产一区二区| 久久av二区| 麻豆九一精品爱看视频在线观看免费| 亚洲国产一区二区精品专区| 欧美精品麻豆| 欧美精品一区二区视频| 欧美日韩三级| 黄色欧美成人| 亚洲精品美女| 国产日韩欧美精品| 国产亚洲欧洲| 免费永久网站黄欧美| 国产精品视频福利| 亚洲一区二区免费看| 亚洲欧美高清| 91网免费观看| 国产精品免费一区二区三区在线观看| 成人91免费视频| 国产精品有限公司| 国产欧美亚洲日本| 九色91在线视频| 日韩av电影免费在线观看| 亚洲国产午夜伦理片大全在线观看网站 | 美女亚洲精品| av在线亚洲男人的天堂| 国产精品中出一区二区三区| 女女同性女同一区二区三区91| 欧美日本韩国一区二区三区| 亚洲一二三区精品| 亚洲国产精品综合| 久久久久久久高潮| 欧美另类一区| 欧美成人嫩草网站| 999在线观看精品免费不卡网站| 一本久道久久综合狠狠爱| 99在线影院| 亚洲欧洲一区二区| 国产欧美一区二区色老头| 高清国产一区| 欧美一区二区三区久久精品茉莉花| 亚洲网站在线| 国产精品三区四区| 欧美一区1区三区3区公司| 国产日韩一区二区三区在线播放| 国产富婆一区二区三区| 伊人情人网综合| 国内一区二区三区在线视频| 日产国产精品精品a∨| 影音先锋久久久| 国产一级二级三级精品| 欧美黄在线观看| 福利视频一区二区三区| 女生裸体视频一区二区三区| 免费日韩一区二区| 在线观看日韩片| 风间由美一区二区三区| 欧美+日本+国产+在线a∨观看| 香蕉视频成人在线观看| 色噜噜狠狠色综合网| 久久高清国产| 伊人婷婷久久| 国产 高清 精品 在线 a| 欧美日韩成人一区二区三区| 2014亚洲精品| 激情91久久| 日韩高清av电影| 美女黄网久久| 精品成人久久| 四虎影院一区二区三区 | 午夜精品剧场| 国产精品视频免费一区二区三区| 欧美日韩综合精品| 精品国产电影| 午夜在线一区| 伊人久久大香线蕉综合热线| 另类小说综合网| 99国产在线视频| 亚洲国产婷婷| 伊人久久大香线蕉av一区| 国产在线一区二| 亚洲一区二区高清视频| 韩日精品视频| 日韩三级电影网站| 精品日本一区二区三区在线观看| 国产精品美女久久久| 国内视频精品| 欧美在线播放一区| 日韩高清av电影| 欧美国产一二三区| 99电影在线观看|