领域模型设计讨论与研究

领域模型设计讨论与研究,第1张

------------------------
内容转自ROBBIN的
    http://forum.javaeye.com
总结转自dev2dev版主whx1977:
    http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=125&threadID=31360
------------------------

为了补大家的遗憾,在此总结下ROBBIN的领域模型的一些观点和大家的补充,在网站和演讲中,robbin将领域模型初步分为4大类:
1,失血模型
2,贫血模型
3,充血模型
4,胀血模型
那么让我们看看究竟有这些领域模型的具体内容,以及他们的优缺点:

一、失血模型

失血模型简单来说,就是domain object只有属性的getter/setter方法的纯数据类,所有的业务逻辑完全由business object来完成(又称

TransactionScript),这种模型下的domain object被Martin Fowler称之为“贫血的domain object”。下面用举一个具体的代码来说明,代码

来自Hibernate的caveatemptor,但经过我的改写:

一个实体类叫做Item,指的是一个拍卖项目
一个DAO接口类叫做ItemDao
一个DAO接口实现类叫做ItemDaoHibernateImpl
一个业务逻辑类叫做ItemManager(或者叫做ItemService)

java代码:  

public class Item implements Serializable {
     private Long id = null;
     private int version;
     private String name;
     private User seller;
     private String description;
     private MonetaryAmount initialPrice;
     private MonetaryAmount reservePrice;
     private Date startDate;
     private Date endDate;
     private Set categorizedItems = new HashSet();
     private Collection bids = new ArrayList();
     private Bid successfulBid;
     private ItemState state;
     private User approvedBy;
     private Date approvalDatetime;
     private Date created = new Date();
     //   getter/setter方法省略不写,避免篇幅太长
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/2085785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-22
下一篇 2022-07-22

发表评论

登录后才能评论

评论列表(0条)

保存