我会试着总结一下。
这是我的想法:
我希望我所有的模型类(纯粹包含字段的get / set,代表我的表)都从一个空的父类继承
用于记录检索/存储的单个数据库类,其中包含许多方法,即方法。对于返回集合的方法,它们返回一种父对象,并在检索时强制转换为正确的类类型
小例子
父类(父对象)
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类,每个返回集合的方法都会接受一个Enum值,方法中的switch语句将决定什么返回对象,如A,B或C.
这是个好主意吗?老实说,这似乎是一种很好的方法,可以显着减少冗余代码并将所有数据库方法排除在10以下。只是一个肯定似乎就足以作为答案,看起来好得令人难以置信:)。
编辑:只是要注意我是否要将数据传递到存储方法,我必须使用DataModel作为类型和instanceof来确定类类型,这可以在一个方法中完成所以仍然看起来好像一个好主意EDIT2:得出结论,这是一个好主意,但是对于返回特定信息,例如在日期之间,扩展数据库的几个类将是最合适的选择。
答案 0 :(得分:1)
是的,我认为这是一个好主意。我们现在正在为我的一个类使用数据库做一个大项目,我们的模型中有一个名为“BusinessObject”的顶级父类,它有一个id(一个GUID),一个bone for alreadyInDatabase(知道是否保存需要是插入或更新)和脏的布尔值(无论何时调用set方法,它都会将该布尔值设置为true,以确定该对象是否与数据库中的对象不同。事实证明它非常有用。我们' ve还编写了一个非常有用且通用的数据访问对象,用于将数据输入和输出数据库。我知道框架可以处理大部分内容。无论如何,您的计划对我来说听起来不错:)