为什么这里用的是abstract class ,原理是什么,为什么要这样设计,如果这样设计接下来又怎么使用?
public abstract class BaseHibernateObjectDao
extends HibernateDaoSupportimplements BaseObjectDao {
......
}
问题补充:
我之前自己的写法是
public class BaseHibernateObjectDao
extends HibernateDaoSupportimplements BaseObjectDao {
......
}
然后每个实体dao extends BaseHibernateObjectDao ,那么BaseHibernateObjectDao中的方法实现就会被其它的实体Dao所拥有,而每个实体dao自己的部分可以实现自己的dao接口.那和前面的abstract class有什么不同?
abstract class的使用
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
mayday85 2008-11-25 12:59关注[quote]那和前面的abstract class有什么不同[/quote]
不同就在于你写的BaseHibernateObjectDao也可以new出来 被别人使用
你自己写代码可能看不出来不同 因为你铁定不会去用BaseHibernateObjectDao
但是如果分工是你写dao,别人写biz
那说不定别人就会去用BaseHibernateObjectDao了,而这不是你希望的大家都是新人,自己写底层类给别人去用的机会少
但是你可以看看java的类库 比如集合类java.util.AbstractCollection
你只能用现成的HashMap Hashset LinkedList之类
但是拥有他们共有方法的AbstractCollection你就用不了
首先这里面可能有未实现的方法 也可能里面的方法根本不够用的
加上了Abstract就不会让不知情的人瞎用另外有天你觉得HashMap Hashset LinkedList都TMD垃圾
自己想写一个集合类 你可以直接继承AbstractCollection 省力得多说了这么多 这个问题必须是多人开发才能看出优点 你自己一个人写 当然不明白了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报