设计银行账户和会员UML图(OO设计)
Design a bank account and membership UML diagram (OO design)
我正在使用 UML 图设计后台帐户会员系统。
我的想法是创建一个 class userAccount
和 2 个继承 userAccounts
[= 的子 classes savingAccount
和 currentAccount
23=]
有了会员资格,我创建了一个会员界面 Membership
并实施了 3 classes,Gold
、Silver
、Bronze
。
所以我想让不同的会员对两个账户有不同的取款限额和转账限额,但是只有interestRateCalculation()
会应用到savingAccount
class.
我已经按照图中的方式实现了UML图。
但是,我觉得这不是实现它的正确方法。由于帐户没有继承 membership
classes,因此帐户 classes 中的方法不应该能够检索 membership
[=] 中的那些方法37=]es。但是如果不这样实现,我找不到更好的实现方式。
我想知道更准确的实现图表的方法是什么。非常感谢。
我在会员中看到的所有内容 classes 似乎独立于任何帐户,如果这是真的:
整个系统中每个子class只有1个实例,所以一共3个,每个都是单例。
事实 IMembership 聚合 userAccount 没有任何意义,它不必知道帐户
可能一个账户只关联了三个单例中的一个,让一个账户知道限额以及如何计算利息。在这种情况下,您有一个从 userAccount 到 IMembership
的定向关联
属性withdrawLimit和transfertLimit出现在四个membershipclass中是不正常的,必须出现仅在 IMembership 中,其必须是抽象 class 而不是接口
对我来说 userAccount 必须是抽象的 class 因为你不能拥有一个不是两个子 classes 之一的帐户。
getWithdrawLimit 和 getTransfertLimit 操作仅取决于成员资格,因此它们是在 userAccount[=52= 上定义的] 而不是在子 classes 上,当然这些操作会调用关联成员实例上的相应操作。
(为了节省时间我没有定义构造函数)
是的,在 currentAccount 的情况下,利息的计算是无用的,但如果你想避免必须将会员资格加倍 classes,与会员的直接关联不在 userAccount 上,而是在每个子 class 上,并且操作 getWithdrawLimit 和 getTransfertLimit 在 userAccount 中是抽象的。这更复杂,我认为不值得付出努力
我正在使用 UML 图设计后台帐户会员系统。
我的想法是创建一个 class userAccount
和 2 个继承 userAccounts
[= 的子 classes savingAccount
和 currentAccount
23=]
有了会员资格,我创建了一个会员界面 Membership
并实施了 3 classes,Gold
、Silver
、Bronze
。
所以我想让不同的会员对两个账户有不同的取款限额和转账限额,但是只有interestRateCalculation()
会应用到savingAccount
class.
我已经按照图中的方式实现了UML图。
但是,我觉得这不是实现它的正确方法。由于帐户没有继承 membership
classes,因此帐户 classes 中的方法不应该能够检索 membership
[=] 中的那些方法37=]es。但是如果不这样实现,我找不到更好的实现方式。
我想知道更准确的实现图表的方法是什么。非常感谢。
我在会员中看到的所有内容 classes 似乎独立于任何帐户,如果这是真的:
整个系统中每个子class只有1个实例,所以一共3个,每个都是单例。
事实 IMembership 聚合 userAccount 没有任何意义,它不必知道帐户
可能一个账户只关联了三个单例中的一个,让一个账户知道限额以及如何计算利息。在这种情况下,您有一个从 userAccount 到 IMembership
的定向关联
属性withdrawLimit和transfertLimit出现在四个membershipclass中是不正常的,必须出现仅在 IMembership 中,其必须是抽象 class 而不是接口
对我来说 userAccount 必须是抽象的 class 因为你不能拥有一个不是两个子 classes 之一的帐户。
getWithdrawLimit 和 getTransfertLimit 操作仅取决于成员资格,因此它们是在 userAccount[=52= 上定义的] 而不是在子 classes 上,当然这些操作会调用关联成员实例上的相应操作。
(为了节省时间我没有定义构造函数)
是的,在 currentAccount 的情况下,利息的计算是无用的,但如果你想避免必须将会员资格加倍 classes,与会员的直接关联不在 userAccount 上,而是在每个子 class 上,并且操作 getWithdrawLimit 和 getTransfertLimit 在 userAccount 中是抽象的。这更复杂,我认为不值得付出努力