浏览 445 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (12)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-07-18
我看javaeye论坛里面讨论了这么多的domainObject,无非都在讨论dao是不是应该注入到model里面去,让model有更强大的功能,而且往面向对象设计靠的更近,很多人拿出ROR来进行比较,我觉得没有多大意义,因为两种不同的语言有它的不同性,你不能要求java做ror能做的。我认为还是讨论一下如何在java里面更好的设计domainObject比较现实。
我们现在项目就是所谓的贫血model,都是由get set 方法组成,外层有service来对model进行操作,每个service注入了好多dao,dao是按照业务模块划分的,这样就导致service太过庞大了,而且没有什么dao接口隔离概念。这样看来虽然系统的层次少了,但是导致系统每个模块负责的东西就多了。尤其是dao这东西,其实都是基于basedao的,非得按照业务区分很多***Dao,不是说这个有问题,而是感觉没有多大必要,这一点我比较同意robbin所提出的service就共用一个baseDao,具体业务就在service里面扩展。关于domain的设计 我认为还是保持它的纯洁性比较好,不要给它赋予太多的责任,我们可以建一个类关联那个Model,从而来增强它。
//model
Class User implement IModel{
private String name
private int age
//todo get set implement
}
//代理model
Class UserAdapter implement IModelAdapter{
private IBaseDao baseDao;
private User user;
public UserDecorater(User user){
this.user = user;
}
public void save(){
//baseDao operation
// todo
}
Interface IModelAdapter implement ,IBaseDao{
public Object getInstance(); //获取原始纯洁的model
//todo 获取其它的接口方法
}
这样的话我操作的model其实是原始model的增强,这样这个增强model就有很多功能了,当然这样做得话会导致产生很多model增强类。 有什么问题各位发表一下意见。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-07-18
增强的model由谁来构造?
|
|
| 返回顶楼 | |
|
时间:2008-08-08
看楼主的意思可能UserAdapter就是User的增强代理类了,用来代理User增强IBaseDAO中的基础动作,不过可惜这个装饰模式没有写正确阿.而且这样仍然还是一个贫血的领域模型,没有看到有什么改善
|
|
| 返回顶楼 | |






