http://www.dotspace.idv.tw/Patterns/anemic_domain_model.htm
有什么感想啊!!
下面上我的想法,我到是认为适当的应用所谓的“贫血模式”还是有必要的!!
有什么感想啊!!
下面上我的想法,我到是认为适当的应用所谓的“贫血模式”还是有必要的!!
banq,你谈谈你对贫血模型的看法。我觉得大家主要是从对象的方向来说明它的不好,认为贫血模型没有它自己的逻辑方法,呵呵,打根我就不认为贫血模型是域模型。而Entity Bean 才是 或者是Dao+贫血模型,呵呵,其实理解什么是域模型很重要,或者就根本不要去追究什么是域模型,只要知道这样做好就行了,概念不是本质的东西。
对于专有名词,的确 说POJO、VO等都可以,JAVA专有名词多,也不是一次两次的事情了!我看这也算是一个简短的领域对象!!
比如有一个复杂的业务逻辑,用复杂的SQL可以实现,存储过程也可以实现,但用OO实现,那我们就可以使系统最大的可扩展、易维护,这就是领域模型的优势所在,我认为这就是领域模型的优势所在。
以前好像多数是苗条的,而且大家都在想方设法的苗条,原因是程序员太懒惰,没人愿意开发维护一个硕大肥胖的域对象。
因为这个肥大的域对象需要一整套存储,操作,表现机制,而且要有事件、自描述等额外信息。在sap里面有,lotus里面有,java里面似乎还没成型。
最近也在思考这个问题,并且有了一些初步答案。
http://www.cnblogs.com/steeven/archive/2004/11/17/64605.html
Manager/Service个人认为是对象的静态方法。整个业务树应该有多个多个服务位于结点上。
当然整体上大家的观点应该没有原则性错误。但我觉得做学问不要人云亦云,有什么了不起,对不对,当然我可以借鉴它,但我一定是以批判的观点去吸取它的对的地方,如果自己的做法在实际应用做真的出了问题,嘿嘿这才是最好的书本。当然了,开始的时候大家没有经验的时候总归是要学习,并且不容易批判的学习的。反正我的观点是vo我只认为它是数据载体,更象元数据的集合,呵呵,我也不认同它是域模型,如果有人那它当域模型来要求而批判它是什么贫血等等,我没有什么意见,但不能因为认为可以批判它它就不应该存在,呵呵,那就错了,因为它根本不是你想象中的域模型,在说一下,它有它的用处,更重要的是它帮助我们说的域模型的对象细化,操作和数据分离,有什么不好。呵呵
rich domain object是oo设计中非常重要的,DDD(domain-driven design)是OO设计中正确的设计方法之一,目前普遍存在的service执行business logic的方式是Transaction Script,更多的是面向功能的结构化设计方式,在简单系统里面也许能很快的实现功能(这种情况下Transaction Script也许是一个合适的设计方案),但是大的系统里面代码重复,重用性较低,随着项目的增大,成本不断上升,它的弊端暴露无疑.service是需要的,它只是代理domain object的行为,给外界提供服务,它是facade,请参考经典设计模式,facade的作用何意图到底是什么.