日期:2014-05-17  浏览次数:20755 次

SSH架构问题,高手进!!!
搞开发这么久了,之前都没怎么用过SSH,最近加入一个项目,感觉架构弄的好乱,想好好整理一下。在整理时产生了一个想法,如下:
service成分接口和实现层,其实一般就是一个接口对应一个实现类,现在感觉接口也没什么用,到底什么业务逻辑需要抽取接口?什么样的不需要?如果不需要的是否需要实现一个公共的service接口?
还有DAO层也是这样,现在我时想提出一个公共的basedao接口及basedaoimpl,基本所有的dao是继承这个basedao,这样是否合理?还有daoimpl也都要建立对应的接口吗?

大家给点建议吧,小的感激不尽!!!

------解决方案--------------------
探讨
其实一般就是一个接口对应一个实现类,现在感觉接口也没什么用,

------解决方案--------------------
探讨

引用:
引用:
其实一般就是一个接口对应一个实现类,现在感觉接口也没什么用,

有时候实现类不是你自己写的,如当你用动态代理方式实现AOP相关的特性的时候,其实是系统为你生成了一个新的类,并保证这个类实现了你的接口。
这时,如果你没有多定义那一层接口,以上特性就实现不了了。

那如果我大部分的service或dao都实现一个公共的接口可以吗?

------解决方案--------------------
对于是否使用公共接口问题取决于 项目的大小。

ssh对于大型项目管理有很大的帮助。

在大型项目进行更新时可以直接替换文件,同时更改xml配置文件就可以了。
------解决方案--------------------
1。service的接口有利于以后的维护性。
 比如,比如你现在做web的实现类serviceImpl,将来可能增加手机的,webservice的。。。

2。之前看过一篇文章,通过范型技术,使用了一个Dao/DaoImpl.里面就是一些基本DB操作。个人感觉挺方便。

3。Service不建议用一个,毕竟好多业务都不同。
------解决方案--------------------
举个最简单的例子吧,你以后用了WEBSERVICE,就是别人调用你的SERVICE方法。你只需要把SERVICE接口文件打包给他就行了,如果以后修改方法实体修改你的实现类就行了,不需要修改接口。除非添加新方法或者修改参数。这样就很方便维护。
------解决方案--------------------
还有DAO层也是这样,现在我时想提出一个公共的basedao接口及basedaoimpl,基本所有的dao是继承这个basedao,这样是否合理?
就这个问题的话,是没有问题的,但是你的这个baseDao的话必须是泛型Dao,因为一个项目不可能只有一个实体。

还有daoimpl也都要建立对应的接口吗?
要建,如果是ssh三大框架集成的话,因为在对应service里面注入接口比注入类要好,要安全,具体的原因找度娘。

service成分接口和实现层,其实一般就是一个接口对应一个实现类,现在感觉接口也没什么用,到底什么业务逻辑需要抽取接口?什么样的不需要?如果不需要的是否需要实现一个公共的service接口?
接口的使用可以加大你程序的安全性,减少依赖和类型的装箱拆箱。强烈建议多使用接口。

如果不需要的是否需要实现一个公共的service接口?
千万不要实现一个公共的service接口,除非你所有的service都有一个同样功能,这样的就可以。