充血模型与贫血模型

充血模型与贫血模型

ID:38760963

大小:33.73 KB

页数:28页

时间:2019-06-19

充血模型与贫血模型_第1页
充血模型与贫血模型_第2页
充血模型与贫血模型_第3页
充血模型与贫血模型_第4页
充血模型与贫血模型_第5页
资源描述:

《充血模型与贫血模型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、领域模型分为4大类:1,失血模型2,贫血模型3,充血模型4,胀血模型那么让我们看看究竟有这些领域模型的具体内容,以及他们的优缺点:一、失血模型失血模型简单来说,就是domainobject只有属性的getter/setter方法的纯数据类,所有的业务逻辑完全由businessobject来完成(又称TransactionScript),这种模型下的domainobject被MartinFowler称之为“贫血的domainobject”。下面用举一个具体的代码来说明,代码来自Hibernate的caveatemptor,但经过我的改写:一个

2、实体类叫做Item,指的是一个拍卖项目一个DAO接口类叫做ItemDao一个DAO接口实现类叫做ItemDaoHibernateImpl一个业务逻辑类叫做ItemManager(或者叫做ItemService)java代码:  publicclassItemimplementsSerializable{    privateLongid=null;    privateintversion;    privateStringname;    privateUserseller;    privateStringdescription;   

3、 privateMonetaryAmountinitialPrice;    privateMonetaryAmountreservePrice;    privateDatestartDate;    privateDateendDate;    privateSetcategorizedItems=newHashSet();    privateCollectionbids=newArrayList();    privateBidsuccessfulBid;    privateItemStatestate;    privateUs

4、erapprovedBy;    privateDateapprovalDatetime;    privateDatecreated=newDate();    //  getter/setter方法省略不写,避免篇幅太长}java代码:  publicinterfaceItemDao{    publicItemgetItemById(Longid);    publicCollectionfindAll();    publicvoidupdateItem(Itemitem);}ItemDao定义持久化操作的接口,用于隔离持久化代码。

5、java代码:  publicclassItemDaoHibernateImplimplementsItemDaoextendsHibernateDaoSupport{    publicItemgetItemById(Longid){        return(Item)getHibernateTemplate().load(Item.class,id);    }    publicCollectionfindAll(){        return(List)getHibernateTemplate().find("fromItem

6、");    }    publicvoidupdateItem(Itemitem){        getHibernateTemplate().update(item);    }}ItemDaoHibernateImpl完成具体的持久化工作,请注意,数据库资源的获取和释放是在ItemDaoHibernateImpl里面处理的,每个DAO方法调用之前打开Session,DAO方法调用之后,关闭Session。(Session放在ThreadLocal中,保证一次调用只打开关闭一次)java代码:  publicclassItemMana

7、ger{    privateItemDaoitemDao;    publicvoidsetItemDao(ItemDaoitemDao){this.itemDao=itemDao;}    publicBidloadItemById(Longid){        itemDao.loadItemById(id);    }    publicCollectionlistAllItems(){        return  itemDao.findAll();    }    publicBidplaceBid(Itemitem,Use

8、rbidder,MonetaryAmountbidAmount,                            BidcurrentMaxBid,BidcurrentMi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。