我试着总结一下。
我的想法是:
时转换为正确的类类型。
小例子
父类(父对象)
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());
}
}最后,我的计划是构建一个Enum类,每个返回集合的方法都将接受Enum值,方法中的开关语句将确定返回的对象是什么,比如A、B或C。
这是个好主意吗老实说,这似乎是一个很好的方法,可以显着地减少冗余代码,并将该项目的所有数据库方法消除到小于10。只是一个“是”的回答就足够了,似乎太好了,不可能是真的。)
编辑:如果我要将数据传递到存储方法中,我必须使用DataModel作为类型和实例来确定类类型,这可以在方法中完成,所以看起来仍然是个好主意。
EDIT2:得出的结论是,这是个好主意,但是对于返回特定信息(例如日期之间),扩展数据库的几个类将是最合适的选择。
发布于 2012-03-18 23:17:03
是的,我认为这是个好主意。我们现在正在为我的一个类使用数据库进行一个大型项目,在我们的模型中有一个名为"BusinessObject“的顶级父类,它有一个id ( GUID),一个用于alreadyInDatabase的布尔(以了解保存是否需要插入还是更新),以及一个用来表示save的布尔值(每当您调用一个set方法时,它都会将该布尔值设置为true,以了解该对象与数据库中的对象是否不同。事实证明这是非常有用的。我们还编写了一个非常有用的通用数据访问对象,用于从数据库中获取数据。不过,我知道框架处理了大部分这些东西。不管怎么说,你的计划听起来不错:)
https://stackoverflow.com/questions/9762847
复制相似问题