锁定老帖子 主题:继承还是代理
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-22
接口针对业务来设计, 继承针对公共类来设计。
|
|
返回顶楼 | |
发表时间:2011-06-22
wxno1 写道 我还是感觉这个service改成叫dao比较合适,本来就干了dao的事情嘛
同意,而且把pojo作为类属性,只能作为prototype,感觉奇怪 |
|
返回顶楼 | |
发表时间:2011-06-22
371937605 写道 wxno1 写道 我还是感觉这个service改成叫dao比较合适,本来就干了dao的事情嘛
同意,而且把pojo作为类属性,只能作为prototype,感觉奇怪 不仅是命名上的混乱,逻辑结构也比较糊涂。。 service继承dao接口也不是不可以,但是serviceImpl就明显的不是看名字那么简单,正确的serviceImpl应该返回相应dao.method的结果。可实际上它就是个daoImpl。。。。 |
|
返回顶楼 | |
发表时间:2011-06-22
nighthawk 写道 dao跟service,最好是依赖关系,get,set注入。这从概念上说得过去。
当然,有的项目图省事,直接让service继承公共的dao。这儿的service只是名字上的service,其实还是个dao。 正解,+1 |
|
返回顶楼 | |
发表时间:2011-06-22
LZ,你这个是DAO,不是Service。。。
|
|
返回顶楼 | |
发表时间:2011-06-22
最后修改:2011-06-22
第一.BaseService接口和它的实现类BaseServiceImpl,按照楼主贴出的代码显示,应该是所于DAO层。
第二 引用 package com.hp.system.service; import com.hp.common.basedao.BaseService; /** * Extends BaseService</br> * {@link com.hp.common.basedao.BaseService} * @author * */ public interface PubUsersService extends BaseService { } 这里面PubUsersService接口其实用不着继承BaseService接口,只要PubUsersServiceImpl继承BaseServiceImpl即可。 其实最主要的是要搞清楚,extends和implements的使用场景,以及你的业务是要实现什么。 |
|
返回顶楼 | |
发表时间:2011-06-22
1.Service,BO,DAO职责先划分明确(根据业务裁剪分层结构);
2.Java里面的接口实际上是来磨平和C++的的界限,继承与接口承载的责任是不同的,君不见Spring源码处处可见上面的模式么,只不过用在这里让人有骂爹的感觉; 3.接口设计是有讲究的(语法层面,涉及编译器的优化),建议看下JVM specification,有助于提高的。 |
|
返回顶楼 | |
发表时间:2011-06-23
最后修改:2011-06-23
且不论 是DAO 还是 Service 代码好像用的是模板方法模式 在JDK和Spring随处可见
interface A abstract class AbstractAImpl implements A interface B extends A class BImpl extends AbstractAImpl implements B |
|
返回顶楼 | |
发表时间:2011-06-23
这段代码代表着国内大多数公司的水平,真的不怎地
|
|
返回顶楼 | |
发表时间:2011-06-23
最后修改:2011-06-23
jackerxff 写道 且不论 是DAO 还是 Service 代码好像用的是模板方法模式 在JDK和Spring随处可见
interface A abstract class AbstractAImpl implements A interface B extends A class BImpl extends AbstractAImpl implements B 这种模式在框架设计,和JDK中确实很常用。这段代码有模板方法的意思,但严格来说并不是。 |
|
返回顶楼 | |