一个ssh项目的疑问

ascendlin 2011-10-09 09:44:18
看到一个ssh项目,是采用抽象的编程模式,而不是借口的编程,谁能给讲讲这是什么原理,有什么好处和不好之处:
DAO层
inteferface  DAO(){
增删改查的操做方法;
}

DAO的实现层实现hibernateDAOsupport,
然后定义了一个抽象类,
abstract class BaseDAO(){
里面注入接口DAO..., 就没有其他代码了
}

然后其他各个DAO的实现去继承这个BaseDAO(),比如
public class UserDAO extends BaseDAO(){
...}

Service层有一个BaseService
public class BaseService extends BaseDAO(){
}

然后用户的各个Service去继承这个BaseService。


请问这样的实现方式是个什么原理,有什么好处与坏处?
...全文
161 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
pl3121605999 2011-10-09
  • 打赏
  • 举报
回复
正常啊。。我就挺喜欢这样写啊。。把一些共有的数据操作提取出来。。
AaronLin98 2011-10-09
  • 打赏
  • 举报
回复
哪种让同仁觉得简洁,轻巧,容易理解,维护的就可以~~
ascendlin 2011-10-09
  • 打赏
  • 举报
回复
习惯了面向接口,转不过弯弯了
AaronLin98 2011-10-09
  • 打赏
  • 举报
回复
取其精华,去其糟粕。
没准写这项目兄弟的觉得那样好,或者习惯那样呢?
AaronLin98 2011-10-09
  • 打赏
  • 举报
回复
1、抽象类
动物 - 猴子,大鸟,兔子。
就用abstract class Animal,其它动物继承它。 可以使用抽象类中的属性。 一般是对对象的继承。

2、接口
飞, 爬树。
interface Fly, 或 interface Climb, 哪个动物会飞,就实现这个接口,一般是对 动作的实现。

个人见解:两种实现的差不多-- 区别在以上所说2点。 欢迎拍砖。
ascendlin 2011-10-09
  • 打赏
  • 举报
回复
面向抽象的编程模式,不是很理解
AaronLin98 2011-10-09
  • 打赏
  • 举报
回复
做了轻度封装
如 BaseDAO() 实现增删改查, 那继承它的其它DAO实现类,就可以直接使用它的增删改查
即将所有 增删改查的基本操作全部放在一个BaseDAO里。

如果不用继承,那你有可能每个DAO实现类都写增删改查,那样重复代码就会有很多了~
ascendlin 2011-10-09
  • 打赏
  • 举报
回复
zuoguoyao 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wolf863292 的回复:]
哎,总有喜欢追求原理的人啊。

当我这么写的时候,我从不想是什么原理,我的理由就是,懒得把相同的东西复制粘贴好多次,改起来麻烦。
[/Quote]

俺也是懒人。 所有的方法都写在一个抽象类里,只是参数改改 就好了
chuaizicai 2011-10-09
  • 打赏
  • 举报
回复
抽象类的好处是可以继承父类的方法,节省代码。
比如你的UserOneDAO和UserTwoDAO,增删改的方法都一样,只有查询不同,一个通过姓名,一个通过ID。
那就可以写一个BaseDAO抽象类实现增删改方法,然后写一个查询的抽象方法,子类继承BaseDAO之后只要写一个查询方法就可以了。
wtc860104 2011-10-09
  • 打赏
  • 举报
回复
BaseDao可能会有一些公共的方法,这个方法的具体实现是统一的,所以要用抽象类。比如BaseDao做一个存储操作
BaseDao
public void save(){
session.save(getEntity());
}
abstact Object getEntity();

大概就是上面的意思
service也是类似,可能有些操作是因为具体业务而增加的特殊操作,就写在service里,然后其他具体的service再去继承这个service
dzr1990 2011-10-09
  • 打赏
  • 举报
回复
因为dao和service里面有很多重复的代码,如果用接口的话还要去重复的写那些代码。

为了实现代码的重用,所有高手们有的时候就会用抽象类了,这样可以把重用的构造方法或者其他的方法写在一个类里面就行了。
24K純帥 2011-10-09
  • 打赏
  • 举报
回复
这不应该是接口用的比较多么。。
wolf863292 2011-10-09
  • 打赏
  • 举报
回复
哎,总有喜欢追求原理的人啊。

当我这么写的时候,我从不想是什么原理,我的理由就是,懒得把相同的东西复制粘贴好多次,改起来麻烦。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧