读《实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)》想到的
由于最近又回炉(兼职学生),就打算按照课程的安排重新思考一些事情。
讲到建模我拜读了一下板桥里人的《实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)》<BR>有些问题如下:
1》请允许我说下这片文章的问题,写文章是为了让大家都能看懂。所以请用明确的语句明确的写出您的观点看法,有些东西对于您来说是呼之欲出的,点到就可以了,但是对于我这个菜鸟级的是做不到的。
您提到的Spring状态问题。据我了解大多数人用Spring管理的业务bean,这些bean99.9999%都是单例的,没有自己的非线程安全的成员变量的,一些和状态相关的都是值对象,保存在httpsession中的。这样的使用方式是不是有问题,如果有具体如何使用呢????
3》对于贫血模式。对象的抽象有两种方式一个是数据抽象一个是职责抽象,贫血模式更像是数据抽象出来的东西。这样抽象出来的对象有问题,就是拔了毛的鸡就是人的问题,因为人被抽象成没有毛两条腿直立行走的动物,所以拔了毛的鸡是人。
按照职责抽象我理解可行的操作就是状态和行为同时抽象。这样的对象有强行为(不仅仅有getset弱行为)现实告诉我更好用些,我详细研究了jbpm的代码与设计(我可能就是板桥里人说得看电视要先拆了看看构造的人)jbpm是一个非常好的OO以及Hibernate使用的例子。
而通常的做法是同时抽象了行为与状态,但是又符合了贫血模式。即把状态单独放到一个pojo中,有些行为放到dao中。这个似乎是非常流行的做法。但是在使用当中,特别是有体现多态的性的时候,我也确实碰到了一些问题,由于行为和状态单独抽象了最后在使用的时候不得不在把他们组合起来。这样的dao确实也不再是为了数据库的不同而进行的桥接与适配了。不知道我上述的理解是否正确?板桥里人 真正提倡的又是一种什么方式呢?
[该贴被admin于2009-04-28 07:13修改过]