java中类之间的一对一关系
我必须在JavaSE中实现以下类,但我不知道如何实现ATMCard和Account之间的一对一关系。我已经研究过(可能有错误的关键字),但没有找到任何东西。先谢谢你java中类之间的一对一关系,java,class,relationship,Java,Class,Relationship,我必须在JavaSE中实现以下类,但我不知道如何实现ATMCard和Account之间的一对一关系。我已经研究过(可能有错误的关键字),但没有找到任何东西。先谢谢你 要在ATMCard和Account之间创建一对一的关系,您必须在ATMCard类中创建Account实例。首先,我发现您的模型对于ATMCard和Account来说有点奇怪: PIN是否与ATMCard相关,而与账户相关 custName是否与账户相关 然后,1-1关系意味着您将拥有以下其中之一: Account类有一个类型为
要在
ATMCard
和Account
之间创建一对一的关系,您必须在ATMCard
类中创建Account
实例。首先,我发现您的模型对于ATMCard
和Account
来说有点奇怪:
是否与PIN
相关,而与ATMCard
相关账户
是否与custName
账户相关李>
类有一个类型为Account
ATMCard
类的成员类型为ATMCard
Account
- 这两种关系
- 以上都不是,而是基于ID获取相关实体的getter。例如,您可以有一个
,它将基于ATMCard$getAccount()
检索相关的accountNo
帐户李>
public static ATMCard createCard(String name, int accNo, int pin, int initBal) {
Account acc = new Account(name, accNo, initBal);
ATMCard card = new ATMCard(pin);
card.setAccount(acc);
return card;
}
您可以保护ATMCard
和Account
构造函数以强制使用公共工厂方法
注意:您可以使用像
Spring
或Guice
这样的框架来提供这种工厂和注射服务。我认为这是ATM
不需要与ATMCard
或帐户相关。想想你的银行在另一家银行的ATM机上使用了什么?或者您的银行不允许将ATMCard
用于其他银行ATM
这些应该是ATM取款操作的一部分
您可以拥有从帐户
到ATMCard
的双向关系。我假设这是作业,如果是,请将其标记为作业。另外,请说明您尝试了什么-很可能您已经创建了ATMCard
类。鉴于ATMCard
与CustName
和accountNo
都有一对一的关系,因此了解如何将这种关系添加到帐户
,应该不会有太大的想象飞跃。如果你仍然不确定,你真的最好与你的导师讨论,而不是张贴在这里,希望得到答案。事实上,这不是一个家庭作业,而是我的硕士论文的一部分,我不是试图从人们那里找到源代码,而是学习它的逻辑,这是这个网站的目的还是?顺便说一句,谢谢你的回答。为了成功建立这种双向关系,我应该在Account中创建ATMCard实例,同时在ATMCard中创建Account实例吗?你不能同时做这两件事(在card中创建Account实例,反之亦然)。最灵活的当然是有一个卡片工厂,它将通过受保护的构造函数创建两个对象,并通过受保护的setter设置关系。通过这种方式,您可以加强两个对象之间的强关系。应避免双向关系,这会使模型变得脆弱。账户
了解ATMCard
有什么好处?只要创建帐户
就可以将其注入ATMCard
中,使关系从ATMCard
工作到帐户
,并完成工作。@atishhimpi是的,但不要在ATMCard
中创建帐户
,通过构造函数注入一个