浏览 2108 次
锁定老帖子 主题:请教关于业务服务层实现问题?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-13
首先定义一个Service接口 package com.test.service; public interface MyService { public void A(); } 然后定义一个Dao接口与其实现 package com.test.dao; public interface MyDao { public Object getA(); } package com.test.dao; public class MyDaoImpl implements MyDao { public Object getA() { return null; } } 那么现在问题就来了,应该这样实现Service package com.test.service; import com.test.dao.MyDaoImpl; public class MyServiceimpl extends MyDaoImpl implements MyService { public void A() { // TODO Auto-generated method stub } } 还是应该 package com.test.service; import com.test.dao.MyDao; public class MyServiceimpl implements MyService { private MyDao myDao; public void A() { // TODO Auto-generated method stub } public void setMyDao(MyDao myDao) { this.myDao = myDao; } } 第二种貌似更加符合设计理念一些,但是第一种也很好用,请问各位大侠的意见 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-14
从示例代码看,貌似你的service本身没有太多逻辑,如果实际情况的确如此,建议你采用第一种方式,这样是SS2采用的方式,从接口设计隔离和维护成本来看都是比较合理的,而第二种则导致了维护成本的提高。
|
|
返回顶楼 | |
发表时间:2007-12-14
yimlin 写道 从示例代码看,貌似你的service本身没有太多逻辑,如果实际情况的确如此,建议你采用第一种方式,这样是SS2采用的方式,从接口设计隔离和维护成本来看都是比较合理的,而第二种则导致了维护成本的提高。
我的应用里面Service比较复杂,我给的代码只是一个示例而已。 我一直对这两种实现选择犹豫不觉,因为我们是一个大型的长期产品,现在正准备重构一下 |
|
返回顶楼 | |
发表时间:2007-12-14
多用组合,少用继承,除非组合不能做继承做的事
|
|
返回顶楼 | |
发表时间:2007-12-15
|
|
返回顶楼 | |
发表时间:2007-12-15
hanny0918 写道 多用组合,少用继承,除非组合不能做继承做的事
请教一下这样做的根据在哪里? |
|
返回顶楼 | |