1 回答

TA貢獻1846條經驗 獲得超7個贊
您可以將該類抽象化,然后子類必須實現實際的數據庫調用:
public abstract class PaginationWrapper<T> {
private int currentPage = 1;
private int pageSize = 100;
public ArrayList<T> getNextPage() {
currentPage++;
int startRow = currentPage * pageSize;
// here we delegate to the implementation
return getNextPage(startRow, pageSize);
}
protected abstract ArrayList<T> getNextPage(int startRow, int pageSize);
}
然后創建2個子類
public class JobPagination extends PaginationWrapper<Job> {
protected ArrayList<Job> getNextPage(int startRow, int pageSize) {
return /* list from database */
}
}
public class ContractPagination extends PaginationWrapper<Contract> {
protected ArrayList<Contract> getNextPage(int startRow, int pageSize) {
return /* list from database */
}
}
現在通用邏輯被打包到了,PaginationWrapper但實際的數據庫邏輯現在駐留在特定的子類中。
添加回答
舉報