班级及其责任分析

时间:2017-02-07 05:17:57

标签: class responsibility

假设我有一个用例"客户存入账户资金"。应该在哪里功能"存款()"走 ?客户还是账户?该用例的设计应该是什么?

1 个答案:

答案 0 :(得分:1)

执行deposit操作后,此操作将至少记录执行操作的deposit_amountdeposit_date。因此,此操作deposit的放置取决于以下四种方案(或customeraccount之间的关系):

[1] account可以属于许多customer。但是,customer可以有一个account。也就是说,该关系是从accountcustomer的一对多关系。在这种情况下,depositdeposit_amountdeposit_date)操作应该是customer的一部分。

[2] customer可以容纳多个account。但是,account可以属于单customer。也就是说,该关系是从customeraccount的一对多关系。在这种情况下,depositdeposit_amountdeposit_date)操作应该是account的一部分。

[3]许多account可以属于单个customer。此外,许多account可以容纳customer。也就是说,关系是从accountcustomer的多对多关系。在这种情况下,最好有一个单独的班级CDeposit{ customer_id,account_id,deposit_amount,deposit_date} which will record this action存款。

[4] account只能属于一个customer。另外,customer只能容纳一个account。也就是说,关系是从accountcustomer的一对一关系。在这种情况下,depositdeposit_amountdeposit_date)操作可以属于accountcustomer中的任何一种。