私は試して要約します。 (実際には関係ありません)ORMのHibernateフレームワークを使用してJava継承設計のアイデア - アドバイスが必要です
は- ここ
が私の考えです:私が欲しい
純粋/フィールドに設定し、取得を表す含むすべての私のモデルクラス(私のテーブル内)を空の親クラスから継承する
多くのmethを含むレコードの検索/保存用の単一のデータベースクラスこれらのためのods、その方法。コレクションを返すメソッドの場合、それらは親オブジェクトのタイプを返し、検索時に正しいクラス型にキャストされる
小さな例
親クラス(親オブジェクト)
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;
}
}
私はA.に似た12クラスの合計を持っているつもりです
データベースクラス
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());
}
}
は最終的に私の計画は、列挙型クラスを構築することで、コレクションを返す各メソッドはEnum値を受け入れます。メソッド内のswitchステートメントは、A、B、Cなど返されるオブジェクトを決定します。
これは良い考えですか?正直なところ、冗長コードを大幅に削減し、このプロジェクトではすべてのデータベースメソッドを10未満にするという良い方法のようです。ちょうど答えが十分であるように思えるはいは、あまりにも真実であるように思えます:)。
EDIT:データをストレージメソッドに渡す場合は、DataModelを型とinstanceofとして使用してクラスの型を判断する必要があります。これはメソッドで行うことができます。アイディア。
EDIT2:特定の情報を返すためには良いアイデアだと結論づけてください。日付の間に、データベースを拡張するいくつかのクラスが最適なオプションになります。