gpt4 book ai didi

java - 内部类会更适合我正在建模的内容吗?

转载 作者:行者123 更新时间:2023-12-04 04:46:26 25 4
gpt4 key购买 nike

我正在用 Play 2 用 Ja​​va 构建一个应用程序。我正在为不同类别的人建模,每个人与与应用程序进程相关的其他一些类都有不同的关系。每个Application有一个 Signatory , CertificateHolder , 和 EnrolmentOfficer .

我意识到,由于一个人可能是这些事物中的任何一个或全部,因此将他们的信息存储三次是多余的。所以一些重构是有序的!

我决定要单例Person将存储 Signatory 中的每一个的类, CertificateHolder , 和 EnrolmentOfficer类通过对象组合。然后我可以使用 person.signatory. 访问他们的任何属性。符号。

我想知道的是:因为这三个专业类不存在于 Person 之外。 ,使用内部类会更好地实现我的目标吗?我的意思是这样:

public class Person {

public class Signatory {
// Signatory fields go here
}

public class CertificateHolder {
// CertificateHolder fields go here
}

public class EnrolmentOfficer {
// EnrolmentOfficer fields go here
}

// More general Person code goes here
}

我似乎不需要在数据库中为每个 Signatory 存储一个单独的实体。 , CertificateHolder , 和 EnrolmentOfficer ,但我不确定 伊 bean 可以正确地将此设计转换为数据库模式。

哪种方法更适合我的目的?

编辑:内部类方法不起作用;它与 ebean 处理关系的方式不兼容。我要请版主删除此主题。

最佳答案

您可以/应该使用继承,因为每个 Signatory , CertificateHolder , 和 EnrolmentOfficer IS-A Person 和 person 字段在派生自它的 oll 类中很常见。类(class)应该是:

class Signatory extends Person{
...
}


class CertifiedHolder extends Person{
...
}


class EnlormentOfficer extends Person{
...
}

如果您使用 Hibernate/JPA,您可以在实体上应用继承,从而在数据库表上应用:看看 Entity Inheritance .

关于您的评论,您可以让一个类也从您的子类派生一个类,从而“组合”这两个功能。

关于java - 内部类会更适合我正在建模的内容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105674/

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