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
Antwort
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.
- 1. Klasse, Modul, ihre eigenclasses und Methodensuche
- 2. C++ verwenden Sie eine Klasse in einer Klasse (in einer Klasse) und rufen Sie ihre Funktionen
- 3. Nur Eigenschaften für die Klasse und ihre Unterklassen
- 4. Zwei Routenattribute für die Klasse und ihre Methode?
- 5. C++ - Speicherpool für eine Klasse und ihre abgeleiteten Klassen
- 6. Kann eine verschachtelte C++ - Klasse ihre umschließende Klasse erben?
- 7. Make Unterklasse hat ihre eigene Klasse Attribut
- 8. Warum schweben Bootstrap ihre span12 Klasse
- 9. Was ist Ihre am meisten wiederverwendet Klasse?
- 10. Wie haben erweitern Sie Ihre Assert Klasse
- 11. Serialisieren einer abgeleiteten Klasse als ihre Basisklasse
- 12. PermGen und Heap, Differenz und ihre Bedeutung
- 13. WC_Order get_items() und ihre Menge
- 14. Singleton Klassen in Ruby und ihre Nützlichkeit
- 15. JavaFX-Warnungen und ihre Größe
- 16. C# Attribute und ihre Verwendung
- 17. Ihre Webseite Bildschirm drucken und
- 18. Numerische Primitive und ihre Suffixe
- 19. Methoden/Konstruktoren und ihre Rückgabewerte
- 20. Verschiedene Höhen und Breiten von Bildern derselben Klasse aufnehmen und auf ihre Geschwister anwenden
- 21. Was nutzt die FileDescriptor-Klasse in Java und ihre In, Out und Err-Methoden?
- 22. NULL terminierte Zeichenfolge und ihre Länge
- 23. Wie erben Sie eine MethodView Klasse ohne ihre Dekoratoren?
- 24. Verschachtelte statische Klasse kann ihre statischen Felder nicht zurückgeben
- 25. Wie Sie feststellen, welches Formularmodul Ihre Klasse aufgerufen hat
- 26. Wie verhindert man, dass Ihre Klasse in C++ vererbt wird?
- 27. Wie kann eine Klasse wissen, dass ihre Superklasse Objekt ist?
- 28. Übergeben der Klasse als Standardargument für ihre Methode
- 29. Klasse erweitert SKScene, kann aber nicht auf ihre Attribute zugreifen
- 30. Objekte durch ihre Parameter suchen und zusammenführen
Jedem Kunden kann ein Konto zugeordnet werden. Die Einzahlung ist eine Aktion des Kunden, also sollte diese Funktion/Methode dorthin gehen, denke ich. –
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