java中类之间的一对一关系

Ken*_*ors 5 java class relationship

我必须在Java SE中实现以下类,但我无法弄清楚如何实现ATMCard和Account之间的一对一关系.我研究过(可能是错误的关键字)但找不到任何东西.先感谢您..

问题中提到的类图

T.G*_*lle 3

ATMCard首先,我发现你的模型对于和有点奇怪Account

  • 不是PIN与the相关ATMCard而不是与the相关吗Account
  • 不是custName相关的吗Account

那么,1-1 关系意味着您将拥有以下之一:

  • 该类Account有一个类型的成员ATMCard
  • 该类ATMCard有一个类型的成员Account
  • 以上都是关系。
  • 以上都不是,但是 getter 将根据 ID 获取相关实体。例如,您可以拥有一个ATMCard$getAccount()基于. AccountaccountNo

这实际上取决于您需要的模型逻辑。

正如@NickHolt 所建议的,我会选择一种可以通过工厂初始化的单向关系,例如

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; 
}
Run Code Online (Sandbox Code Playgroud)

您可以保护ATMCard构造Account函数以强制使用公共工厂方法。

Spring注意:您可以使用类似或 的框架Guice来提供这种工厂注入服务。