2016-04-06 9 views
1
setzen

Ich erstelle derzeit ein Klassendiagramm für ein Takeaway-Bestellsystem. Das System erlaubt dem Besitzer, Kundeninformationen zu aktualisieren, Bestellungen zu aktualisieren usw. Würde ich die Methode updateCustomerInfo() in die Customer-Klasse oder die Owner-Klasse stellen? da es der Besitzer die Aktualisierung zu tun - nicht der Kundewo Methode in Klassendiagramm

+0

Ist Ihr Besitzer ein Akteur eines Anwendungsfalls? Oder ist es wirklich eine Klasse, die du in deinem Modell brauchst (gui class oder was auch immer)? – Christophe

+0

Der Besitzer ist ein Schauspieler in einem Anwendungsfall. Ich hatte eine Eigentümerklasse gemacht, weil es auch andere Mitarbeiter gibt, die das System benutzen können, aber nicht alles können, was der Besitzer tun kann. War nicht sicher, wie man zeigt, wer welche Methoden im Klassendiagramm verwenden kann. Denkst du, ich wäre besser, wenn ich die Klasse des Besitzers nehme? – molly

+0

Ihr Titel ist falsch. Sie legen Methoden überhaupt nicht in Diagramme ein. Methoden erscheinen in Fächern von Klassen und Aas-Nachrichten in SDs. –

Antwort

0

Wenn Sie Klassen wie Customer, Order, OrderItem, müssen Sie die Interna dieser Klassen verstecken. Sie würden also eine update() Methode in jeder dieser Klassen verwenden und den Rest der Welt für die Aktualisierung der Objekte zur Verfügung stellen.

Es gibt keine eindeutige Antwort für den zweiten Teil der Frage. Es hängt sehr vom Fokus Ihres Modells ab: is it a domain model ? Or a design model ?.

  • In einem Domänenmodell Sie keine Schauspieler in Ihrem Klassendiagramm umfassen würde, es sei denn, es unbedingt notwendig ist (zB Spur eines Audit-Trail zu halten, die den Benutzer verweist, die erstellt/modifiziert, um ein Objekt)
  • In Ein detaillierterer Entwurf könnte Sinn machen, um die Benutzerkontenverwaltungsklassen, die von Ihrem System benötigt werden, oder das Klassenmodell der Benutzerschnittstelle zu modellieren. Im letzteren Fall würden Operationen, die über die Benutzerschnittstelle ausgeführt werden können, durch Klassen für eine Command design pattern oder Methoden in einem Anwendungsmenü oder proxy GUI objects, die sich auf Ihre Domänenobjekte beziehen, dargestellt.