首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java继承设计思想-需要建议

Java继承设计思想-需要建议
EN

Stack Overflow用户
提问于 2012-03-18 22:22:43
回答 1查看 208关注 0票数 0

我试着总结一下。

  • 使用Hibernate框架进行ORM (不太相关)

我的想法是:

  • --我希望我的所有模型类(仅包含用于字段的get/set,表示其中的表)都从空白父类
  • 继承--一个用于记录检索/存储的单一数据库类,其中包含许多用于这些方法的方法。对于返回集合的方法,它们返回父对象的类型,并在检索

时转换为正确的类类型。

小例子

父类(父对象)

代码语言:javascript
复制
public class DataModel {

}

儿童班

代码语言:javascript
复制
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;
    }

}

数据库类

代码语言:javascript
复制
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;

    }

}

示例用法

代码语言:javascript
复制
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:得出的结论是,这是个好主意,但是对于返回特定信息(例如日期之间),扩展数据库的几个类将是最合适的选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-18 23:17:03

是的,我认为这是个好主意。我们现在正在为我的一个类使用数据库进行一个大型项目,在我们的模型中有一个名为"BusinessObject“的顶级父类,它有一个id ( GUID),一个用于alreadyInDatabase的布尔(以了解保存是否需要插入还是更新),以及一个用来表示save的布尔值(每当您调用一个set方法时,它都会将该布尔值设置为true,以了解该对象与数据库中的对象是否不同。事实证明这是非常有用的。我们还编写了一个非常有用的通用数据访问对象,用于从数据库中获取数据。不过,我知道框架处理了大部分这些东西。不管怎么说,你的计划听起来不错:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9762847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档