1、将service最基础常用的方法抽象到BaseService类,所有service都继承BaseService,这样就减少了写重复的基础常用方法,如:
public abstract class BaseService<M extends BaseModel<M>> {
protected final M dao;
protected BaseService(M dao) {
this.dao = dao;
}
/**
* 新增
* @return 是否新增成功
*/
public boolean add(M model) {
return model.save();
}
/**
* 修改
* @return 是否修改成功
*/
public boolean update(M model) {
return model.update();
}
/**
* 新增或者修改
* @return 是否修改修改成功
*/
public boolean addOrUpdate(M model) {
return model.saveOrUpdate();
}
}
2、将每个表基础常用的方法抽象到一个类,这个类继承了上面的BaseService,如:
public abstract class BaseUserService<M extends BaseUser<M>> extends BaseService<M> {
protected BaseUserService(M dao) {
super(dao);
}
}
3、最底层的的Service只用写一些改表特殊且不会公用的方法就好啦。
这里输入代码
public class UserService extends BaseUserService<User> {
private UserService() {
super(User.dao);
}
}