浏览 5975 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-03-17
AnemicDomainModel
详细请阅读从他的描述来看,我们好多都犯了"贫血"domain model. 可是在我的实践中,感觉在POJO里边如果加入大量的domain logic感觉又有点怪.而且martinfowler老人家,好像也没有详细说,怎样用POJO来处理. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-03-18
agile_boy 写道 详细请阅读AnemicDomainModel
从他的描述来看,我们好多都犯了"贫血"domain model. 可是在我的实践中,感觉在POJO里边如果加入大量的domain logic感觉又有点怪.而且martinfowler老人家,好像也没有详细说,怎样用POJO来处理. 应该说你可能对Domain Logic的理解和Martin的有些不同。Martin强调的是Domain Object所包含的数据和在这些数据上的操作。这些操作就是所谓的Domain Logic。比如说,银行的转账,Account对象必须确保减去的和增加的相等,这就是企业逻辑,这些逻辑就是对自己所拥有的数据的操作,这就是面向对象,很怪吗?。至于怎样加和减并持久化状态,会Delegate到infrastructure去做。 而在非面向对象的设计中,总会有一个类似于AccountManager之类的对象代替Account做这些转账的操作(即所谓的Fat Service层),Account只是一个表示数据的对象而已,这就是所谓的AnemicDomainModel。 你可以找找JavaEye上的示例程序或分层结构,很多都是这种模型。呵呵,扯远了。 |
|
返回顶楼 | |
发表时间:2005-03-18
kewan 写道 应该说你可能对Domain Logic的理解和Martin的有些不同。 谢谢有见地的解说.但自我认为Domain logic和Martin的没有太多不同,也许你是以为我把CRUD也当作Domain Logic了.其实不是的. 也许我对POJO的理解有问题,在我原来的理解中,POJO只是一个简单的get/set的Bean,在我新的理解来看,不是那么简单的,它应该有属于自己的domain logic操作的. 理解不当之处请多指教. |
|
返回顶楼 | |
发表时间:2005-03-18
个人看法,POJO类+DAO构成的是数据源层,而Domain Model层里面的Domain Object并不一定是POJO,当然,在逻辑简单的时候可以充当,在逻辑复杂的时候则需要一个BO
|
|
返回顶楼 | |
发表时间:2005-03-18
agile_boy 写道 kewan 写道 应该说你可能对Domain Logic的理解和Martin的有些不同。 谢谢有见地的解说.但自我认为Domain logic和Martin的没有太多不同,也许你是以为我把CRUD也当作Domain Logic了.其实不是的. 也许我对POJO的理解有问题,在我原来的理解中,POJO只是一个简单的get/set的Bean,在我新的理解来看,不是那么简单的,它应该有属于自己的domain logic操作的. 理解不当之处请多指教. 那看样子要澄清一下POJO的定义了。 很多人认为POJO是只有get个set方法的JavaBean,我的理解不是的。Pure Old Java Object指的是不含任何其他技术(如EJB)的只是用Java来表示的Java Object,和只有get个set方法的JavaBean是不同的。POJO只关注企业逻辑,和其他的技术无关。 |
|
返回顶楼 | |
发表时间:2005-03-18
BlueDavy 写道 个人看法,POJO类+DAO构成的是数据源层,而Domain Model层里面的Domain Object并不一定是POJO,当然,在逻辑简单的时候可以充当,在逻辑复杂的时候则需要一个BO
这点我不能苟同,我认为BO就是一个POJO.你能给我一个BO不是POJO的理由吗? 至于逻辑简单与否,和是否为POJO没有关系。 |
|
返回顶楼 | |
发表时间:2005-03-19
kewan 写道 很多人认为POJO是只有get个set方法的JavaBean,我的理解不是的。Pure Old Java Object指的是不含任何其他技术(如EJB)的只是用Java来表示的Java Object,和只有get个set方法的JavaBean是不同的。POJO只关注企业逻辑,和其他的技术无关。 跟我现在理解的一致。而且也带出一个关于POJO穿透层的问题,在此理解上,我认为应该是可以穿透到表现层的。 |
|
返回顶楼 | |
发表时间:2005-04-06
[quote="kewan]很多人认为POJO是只有get个set方法的JavaBean,我的理解不是的。Pure Old Java Object指的是不含任何其他技术(如EJB)的只是用Java来表示的Java Object,和只有get个set方法的JavaBean是不同的。POJO只关注企业逻辑,和其他的技术无关。
赞一个,觉得这个解释是我目前看到的最好的。 |
|
返回顶楼 | |