關於泛型, 各位看這樣合理不?

kogle發表於2008-03-27
小弟常把一些CRUD操作都封裝在基類中,
各位大俠看看我這樣好不好?

比如說BaseDao中方法 BaseModel load(Long id);同時AbstractBaseDao中實現了該方法
然而在子類dao UserDao中使用load(id)方法 返回一個BaseModel型別的物件,
經常轉型很麻煩, 於是我使用了泛型
Java程式碼

public interface BaseDao<T extends BaseModel> {

/**
* 根據ID查詢物件
*
* @param id
* @return
*/
T load(Integer id);

/**
* 儲存物件
*
* @param model
* @return
*/
Integer save(T model);

/**
* 更新物件
*
* @param model
* @return
*/
int update(T model);

/**
* 刪除物件
*
* @param model
* @return
*/
int delete(T model);

/**
* 查詢所有物件
*
* @return
*/
List<T> findAll();

/**
* 分段查詢物件
*
* @param start
* @param count
* @return
*/
List<T> find(int start, int count);

/**
* 統計物件數量
*
* @return
*/
int countAll();

}


public interface BaseDao<T extends BaseModel> {

/**
* 根據ID查詢物件
*
* @param id
* @return
*/
T load(Integer id);

/**
* 儲存物件
*
* @param model
* @return
*/
Integer save(T model);

/**
* 更新物件
*
* @param model
* @return
*/
int update(T model);

/**
* 刪除物件
*
* @param model
* @return
*/
int delete(T model);

/**
* 查詢所有物件
*
* @return
*/
List<T> findAll();

/**
* 分段查詢物件
*
* @param start
* @param count
* @return
*/
List<T> find(int start, int count);

/**
* 統計物件數量
*
* @return
*/
int countAll();

}



為了方便操作,我的BaseService也是這樣public interface BaseService<T extends BaseModel>{...}

另外問問我這樣做了怎麼使用spring注入

相關文章