關於泛型, 各位看這樣合理不?
小弟常把一些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注入
各位大俠看看我這樣好不好?
比如說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注入
相關文章
- 關於面試,我這樣看面試
- 關於泛型泛型
- 關於C#、java泛型的看法C#Java泛型
- 關於 JavaScript 中的特殊函式,你應該這樣看JavaScript函式
- Java高階特性泛型看這一篇就夠了Java泛型
- 關於Java泛型深入理解小總結Java泛型
- 關於在javabean裡的方法,這樣做會不會影響效能JavaBean
- 泛型就這麼簡單泛型
- 關於waf,請教各位高手。
- 請問, 這樣設計執行緒合理嗎?執行緒
- 【泛型——這才真正的理解你】泛型
- Java泛型知識點:泛型類、泛型介面和泛型方法Java泛型
- 泛型類、泛型方法及泛型應用泛型
- 關於SwiftUI,看這一篇就夠了SwiftUI
- 關於Java中泛型、反射和註解的掃盲篇Java泛型反射
- 泛型類和泛型方法泛型
- 【java】【泛型】泛型geneticJava泛型
- java泛型之泛型方法。Java泛型
- 命令列不會?看這裡命令列
- 【Java面試題】之泛型相關Java面試題泛型
- 泛型--泛型萬用字元和泛型的上下限泛型字元
- 關於這樣的系統設計,求問?
- TypeScript 泛型介面和泛型類TypeScript泛型
- Go 泛型之泛型約束Go泛型
- java泛型之泛型陣列。Java泛型陣列
- 造輪子的時候不敢用不會用泛型?那你看這篇就夠了!泛型
- 關於在javabean裡封裝,大家來看看這樣做怎樣?JavaBean封裝
- 泛型泛型
- 關於反爬蟲,看這一篇就夠了爬蟲
- 這樣delete居然不走索引delete索引
- 泛型最佳實踐:Go泛型設計者教你如何用泛型泛型Go
- rust trait 關聯型別和泛型的區別RustAI型別泛型
- Android 5.0 長啥樣?看這裡Android
- 面試中關於Redis的問題看這篇就夠了面試Redis
- 型別 VS 泛型型別泛型
- TypeScript 泛型型別TypeScript泛型型別
- 對於ArrayList中的泛型進行分析泛型
- 線上編輯器KindEditor看樣子不錯