日期:2014-05-20  浏览次数:20777 次

这种情况下的接口该如何设计
假如我的数据库里有两张表,Person和Car
在对他们进行操作时,有如下两个情况
1:
VO类 DAO类 抽象类
Person PersonDAO AbstractPersonDAO
Car CarDAO AbstractCarDAO
这是第一种情况,也就是为每一个dao都设计一个抽象类(这里,先不区分抽象类和接口的区别,只讨论他们作为父类的使用情况)
我见到的有很多人都是这么用的,但是我不太明白,这个时候抽象类有什么用?用来扩展吗,每个抽象类只有自己的一个dao,怎么扩展?
2:
VO类 DAO类 抽象类
Person PersonDAO AbstractDAO
Car CarDAO AbstractDAO(和上面的是同一个)
这个情况,就是一个抽象的dao,引用着所有实现它方法的子类,如果新加一个物体,比如说Dog,就可以让AbstractDAO指向DogDAO了,我个人是比较偏向于这样的写法的,但是看到大家都在用上面的那个情况

哪位高手愿意花费点时间给解释一下这两个情况的区别以及优缺点啊
一直听人说写一个抽象类(或接口)这样比较容易扩展,将来添加新业务的时候不用修改以前的代码,能举个小例子说明一下吗,先谢谢各位了

------解决方案--------------------
睡前顶帖
------解决方案--------------------
一般用泛型来实现第二种。我的设计: