jfinal抽象Service方法

一、將service最基礎經常使用的方法抽象到BaseService類,全部service都繼承BaseService,這樣就減小了寫重複的基礎經常使用方法,如:java

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();
	}
}

二、將每一個表基礎經常使用的方法抽象到一個類,這個類繼承了上面的BaseService,如:this

public abstract class BaseUserService<M extends BaseUser<M>> extends BaseService<M> {
	protected BaseUserService(M dao) {
		super(dao);
	}
}

三、最底層的的Service只用寫一些改表特殊且不會公用的方法就好啦。code

這裏輸入代碼
public class UserService extends BaseUserService<User>  {
	private UserService() {
		super(User.dao);
	}
}
相關文章
相關標籤/搜索