service层处理相关的业务,dao层处理数据的CRUD.
以登录为例:
第一个疑问
service层有个login接口,同样dao层也有一个login接口。
那么这样岂不是service层中与dao层中会出现很多一样的接口?
第二个疑问
A客户现在有这样的一个业务,登录时需要判断员工是否已经离职
那么我应该怎么处理呢?
在dao层中提供一个checkUser()的接口,service中调用,正确后在调用dao层的login接口。
还是service中直接调用dao层提供的login接口,在dao接口的实现中去判断。
如果B客户没有特别的业务处理,只是单纯的登录,那么此时按照上面的两种方式
我肯定要修改其中的一层了,dao层或者service层。
请大家指点一下……
以登录为例:
第一个疑问
service层有个login接口,同样dao层也有一个login接口。
那么这样岂不是service层中与dao层中会出现很多一样的接口?
第二个疑问
A客户现在有这样的一个业务,登录时需要判断员工是否已经离职
那么我应该怎么处理呢?
在dao层中提供一个checkUser()的接口,service中调用,正确后在调用dao层的login接口。
还是service中直接调用dao层提供的login接口,在dao接口的实现中去判断。
如果B客户没有特别的业务处理,只是单纯的登录,那么此时按照上面的两种方式
我肯定要修改其中的一层了,dao层或者service层。
请大家指点一下……
正常登陆就直接service调用dao里的login方法就好了,
判断离职时,service连续调用dao里的isLizhi和login就好了。
DAO层的方法应该面向表,比如表名叫user,就应该有 getUser deleteUser updateUser 这样的方法;Service层应该面向业务,方法名为业务逻辑,比如 login logout 之类的。关于DAO类的设置,我个人观点是每个表都应该有自己的DAO,这样后期容易维护,如果你的权限表和用户表不是一个,那么就应该是2个DAO接口,每个接口定义自己表相关的CRUD方法定义。
第二个问题:为了减少耦合以及维护方便最好是调用service的login。
我在 开发驿站 网站看见这个帖子, 这个接口标准或许对你有用。(百度搜 开发驿站)
java抽象类与接口的区别java接口:可以理解为一种合约,共性的标准, 该接口中如果存在某些方法,那么这些方法具备一定的关联。
如果你的接口不稳定,常常需要修改;如果你的接口和某种情况有冲突;如果你的接口中存在方法与接口本接口无关; 如果你的接口仅有一个实现, 很难派生出第二个实现,或者根本没有必要或没有可能出现第二种情况;那么你应该好好检查验证考虑你的设计, 本接口是否有存在的意义价值。
我看过很多初学者在使用接口的时候,总是出现如果代码:
public interface StudentDao {
void saveStudent(Student student);
void removeStudentById(int id);
void updateStudent(Student student);
Student findStudentById(int id);
/**等等其他的方法**/
}这种一般出现在某某管理系统,数据库应用中,存在一个实体对象,提供实体对象的数据库操作。
在我看来,一般一个数据库的应用中, 像本类型的接口毫无用处, 把接口删掉, 直接使用实现类即可。
因为这个接口, 不是合约, 不是共性, 仅一种特例状态,毫无标准可言。
更甚至导致, 实现不知道如何合理取名, 叫做StudentDaoImpl, 以后再二次开发,维护,修改的人一头雾水。希望对大家有用