2017-02-07 3 views
0

Angenommen, ich habe einen Anwendungsfall "Kunde zahlt Geld auf Konto". Wohin soll die Funktionalität "Einzahlung()" gehen? Kunde oder Konto ?. Was sollte das Design für diesen Anwendungsfall sein?Klasse und ihre Verantwortlichkeitsanalyse

+1

Jedem Kunden kann ein Konto zugeordnet werden. Die Einzahlung ist eine Aktion des Kunden, also sollte diese Funktion/Methode dorthin gehen, denke ich. –

+0

Ich habe ein Szenario mit mehreren Kundenkonten. So plane ich, so zu entwerfen: Klasse Kunde { IList accountList; Anzahlung (IAccount Konto, Betrag) { // überprüfen, ob das Konto in der Accountliste existiert account.deposit (Betrag); } ist das ok? – aspxsushil

Antwort

1

Wenn eine Aktion deposit ausgeführt wird, zeichnet diese Aktion mindestens die deposit_amount und deposit_date auf, auf der die Aktion ausgeführt wurde. So, Platzierung dieser Aktion deposit hängt von den folgenden vier Szenarien (oder Beziehung zwischen customer und account):

[1] Ein account zu vielen customer gehören. Ein customer kann jedoch einen einzigen account haben. Das heißt, die Beziehung ist Eins-zu-viele von account bis customer. In einem solchen Fall sollte die Aktion deposit (deposit_amount und deposit_date) Teil von customer sein.

[2] Ein customer kann viele account halten. Ein account kann jedoch zu einem einzigen customer gehören. Das heißt, die Beziehung ist eins zu viele von customer bis account. In einem solchen Fall sollte die Aktion deposit (deposit_amount und deposit_date) Teil von account sein.

[3] Viele account können zu einem einzigen customer gehören. Auch ein account kann von vielen customer gehalten werden. Das heißt, die Beziehung ist viele-zu-viele von account bis customer. In einem solchen Fall ist es besser, eine separate Klasse CDeposit{ customer_id, account_id, deposit_amount, deposit_date} which will record this action deposit zu haben.

[4] Ein account kann nur zu einem customer gehören. Auch eine customer kann nur eine account halten. Das heißt, die Beziehung ist eins zu eins von account bis customer. In einem solchen Fall kann die Aktion deposit (deposit_amount und deposit_date) Teil von account oder customer sein.

Verwandte Themen