也谈领域对象的数据与动作分离
说来惭愧, 某日项目组成员交上来领域模型类图,将对象的属性和方法分类,基本上统统使用了DomainObject-DomainObjectManager的方式,前者之后属性以及对应的getter-setter方法,后者包含具体的业务操作.在我询问为什么要这么做的时候,对方反问为什么不能呢,我说这样不符合OO,OO的对象是具有属性已经在此属性上具有操作能力的一种东西,他说分开来一部分用作PO对应数据库表,动作部分用来做基本业务处理难道不好吗? 我一时语塞...只能饮用Robin的一段:
15 楼 毁人不倦 2009-02-09 本人理解领域模型应该是需求分析的范畴,是系统分析和设计的输入,系统分析根据领域模型建立分析模型,而系统的设计与使用的应用框架相关,如果单说领域模型的话,不应该有贫血只说。 16 楼 jasin2008 2009-03-02 目前就是这样做的,不过看了lz的引用,又有了点新的想法,在实际业务中,domain ojbect是不应该存在update_time,remark等与业务无关的属性,这些属性应该是属于po,只是orm的存在我们可以把pojo当作po来用,导致在pojo中存在所有数据库中的字段,而不分该字段是否是domain相关