gpt4 book ai didi

Java继承设计思想 - 求指教

转载 作者:行者123 更新时间:2023-12-01 15:29:15 25 4
gpt4 key购买 nike

我会尝试总结一下。

  • 使用 Hibernate 框架进行 ORM(并不真正相关)

这是我的想法:

  • 我希望我的所有模型类(纯粹包含字段的获取/设置,代表我的表)全部继承自空白父类

  • 用于记录检索/存储的单个数据库类,包含许多用于这些方法的方法。对于返回集合的方法,它们返回父对象的类型,并在检索时转换为正确的类类型

小例子

父类(父对象)

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 个以下的好方法。只需一个"is"似乎就足以作为答案,似乎好得令人难以置信:)。

编辑:只是要注意,如果我要将数据传递到存储方法中,我必须使用 DataModel 作为类型和 instanceof 来确定类类型,这可以在方法中完成,所以看起来仍然是一个好主意.

EDIT2:得出的结论是,这是一个好主意,但是对于返回特定信息,例如在日期之间,一些扩展数据库的类将是最合适的选择。

最佳答案

是的,我认为这是个好主意。我们现在正在为我的一个类使用数据库做一个大项目,我们的模型中有一个名为“BusinessObject”的顶级父类,它有一个 id(GUID),一个 boolean 值 h​​asInDatabase(以了解是否保存需要是插入或更新)和脏 boolean 值(每当您调用 set 方法时,它都会将该 boolean 值设置为 true 以了解该对象是否与数据库中的不同。事实证明,这非常有帮助。我们'我们还编写了一个非常有用且通用的数据访问对象,用于将数据输入和输出数据库。不过,我知道框架可以处理大部分此类内容。无论如何,您的计划对我来说听起来不错:)

关于Java继承设计思想 - 求指教,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com