充血模型与贫血模型的再论 2008-11-27 85hero 充血模型有什么实际的好处么? 难道就为了好听 完美(数据和行为统一)? 过于复杂的需求还是用贫血 ,一般需求用充血 ,这样做正确吗? 项目中用的更多的哪个模型呢。 比较困惑。。
banq 2008-11-27 15:36 当然一直应该用充血模型,不能用贫血模型。 但不是说,将模型相关度不是很高的所有方法行为都放在模型中,要学会使用规格 代理模式 等进行切割。让模型只包含那些本质的行为,比如对自身结构的改变或聚合子对象的操作等等。
IceQi 2008-11-27 19:29 最核心的问题是:一个确定的对象到底需要什么。以这个作为标准,比需要的少了就贫血了,比需要的多了就。。。。垃圾了。最好的情况是可以直接骑在这条标准线上,要依靠个人的功力了。
saharabear 2008-11-27 20:10 经常见这种问题,其他网站上也在争这个。尽量能充血就充血吧,人没有血就不能活,对象也一样。但如果面对旧系统比较多(比如我),在改造的时候往往因为第三方或者一些特殊原因无法进行充血,实在不行那就贫血,但依然尽量通过一些其他方式给领域去填充血。
freebox 2008-11-29 09:51 class Book{ void turn(){}}class ReadNerve{ Book book; void turn(){}}turn是Book的血还是Nerve的血?这个问题要追究书有没有翻页能力。我认为没有,Book+Never才是有血模型。单独拿出来一本书或一条神经在turn这个问题里都没什么价值。