我會盡力總結。Java繼承設計思想 - 建議通緝
- 使用的ORM(並不真正相關)Hibernate框架
這裏是我的想法:
我想我所有的模型類(這純粹是包含獲取/設置字段,表示我的表格內)全部從空白父類繼承
單個數據庫類用於記錄檢索/存儲包含許多方法這些方法,這種方法。對於返回集合的方法中,它們返回一個類型父對象的,並且一旦檢索
小例子
父類(父對象)
被轉換爲正確的類類型public class DataModel {
}
子類
public class A extends DataModel {
private String name;
private String message;
public A (String name) {
this.name = name;
}
public String getMessage() {
return message;
}
public String getName() {
return name;
}
public void setMessage(String message) {
this.message = message;
}
public void setName(String name) {
this.name = name;
}
}
數據庫類
public class Database {
public DataModel returnSingleRecord() {
//eventually have an enum as a param to determine what type of child object of DataModel they would like returned
//data retrieval here etc
A a = new A("ashley");
return a;
}
}
用法示例
public class MainController {
public static void main(String[] args) {
Database r = new Database();
A a = (A) r.returnSingleRecord();
System.out.println(a.getName());
}
}
我將有共12個班的類似A.最後,我的計劃是建立一個枚舉類每個返回集合的方法都會接受一個Enum值,方法中的switch語句將決定返回哪個對象,如A,B或C.
這是個好主意嗎?老實說,這似乎是一個很好的方法,可以顯着減少冗餘代碼,並且可以將所有數據庫方法的數量降至10以下。只是一個似乎就足以作爲答案的是,似乎太好了,以至於不真實:)。
編輯:只是爲了說明如果我要傳遞數據到存儲方法,我將不得不使用DataModel作爲類型和instanceof來確定類的類型,這可以在一個方法中完成,所以仍然看起來像一個很好的理念。
編輯2:得出這樣的結論:這是一個好主意,但是對於返回特定信息在日期之間,擴展數據庫的幾個類將是最合適的選項。