我这里有设计问题。我有三个分支。
- 父亲
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "Persona", schema = "dbo", catalog = "cxc")
Class Person
童
Class User extends Person
Class Customer extends Person
我怀疑这个设计是否适合我的申请,因为de customer可以访问aplicacation查看遗产帐户并付款。
如果客户不能同时成为用户并保持数据的完整性(因为现实生活中只有一个人),我不知道是否可行。
提前感谢
答案 0 :(得分:0)
您只能从Java中的一个类扩展。但是,您可以实现许多接口。这意味着,根据您的设计,用户和客户不能相同。
答案 1 :(得分:0)
或许Customer应该是一个接口,而User可以实现Customer。这将允许您让用户表现得像用户和客户(如果我理解你正确的是你想要的),如果你想限制只是客户部分,只需通过它的界面引用对象:
Customer customer = (Customer)/* the user object. */
这意味着用户的类定义如下所示:
class User extends Person implements Customer {
答案 2 :(得分:0)
在Java中,只允许单继承。
关于设计我会做的是:
类用户扩展人
然后根据用户与用户的不同,您可以跳过Customer类并在User类中添加用户类型的其他属性。 它可以是例如枚举:
enum UserType {
Customer,
User,
Boss,
// etc...
}
但是,如果客户背后存在巨大的业务逻辑,并且用户和客户之间必须明确区别,那么设计就没有错。
答案 3 :(得分:0)
根据您的说明:de customer can acces to the aplicacation to view the estate acount, and make payments
。在我看来,view the estate acount
和make payments
是客户拥有的特权,客户本身就是一种角色。
我不确定您为什么要首先将其建模为客户和用户,也许应用程序的某些背景将在这里提供帮助。