Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Dekorierer Klassendiagramm » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Dekorierer Klassendiagramm
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Marcel20X
unregistriert
Dekorierer Klassendiagramm Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo ich versuche grad ein Dekorierer zu modellieren mit folgenden Eigenschaften.

• Ein Mitarbeiter ist eine Person mit einem Namen und einem Grundgehalt.
• Ein Mitarbeiter kann Zusatzaufgaben übernehmen. Zusatzaufgaben sind:
• Projektleitung: Für jede Projektleitung wird eine Zulage gezahlt.
• Kundenbetreuung: Ein Kunde hat eine Nummer und einen Umsatzwert.
Für jede Kundenbetreuung wird ein Bonus von 10% des Umsatzwertes gezahlt.
• Veranstaltungsorganisation: Für das Organisieren gibt es keine besondere Vergütung.

Ich habe jetzt grob ein erstellt und wollte mal fragen ob die Beziehungen und der Aufbau stimmt. Die Methoden hab ich extra noch nicht mit eingefügt.

Marcel20X hat dieses Bild (verkleinerte Version) angehängt:
Test.jpg

21.05.2019 12:50
Marcel20X
unregistriert
RE: Dekorierer UML-Klassendiagramm Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe ihn nun so aufgebaut.
ES soll ein UML-Klassendiagramm für ein Dekorierer werden.

Marcel20X hat dieses Bild (verkleinerte Version) angehängt:
version 5.png

21.05.2019 16:31
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Der Dekorierer (ich denke, das ist das, was Du mit "Zusatz" bezeichnest?) muss selbst von der abstrakten Klasse "Person" erben.
Das besondere bei dem Muster ist nämlich, dass die erzeugten Dekorierer-Objekte als vollwerte Objekte der ursprünglichen Klasse weiter verwendet werden können, also dasselbe Interface implementieren. Dabei delegieren sie alles weiter an das Objekt, das sie dekorieren und auf das sie eine Referenz halten, außer Dinge, die sie verändern wollen.

Bei der Projektleitung wird man wahrscheinlich auch eine Liste von Projekten benötigen?
Die Boni richten sich ja dann entsprechend nach Grundgehalt und der Anzahl Projekte und/oder Kunden, denke ich.

Gruß
Marco
21.05.2019 19:19 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Marcel20X
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ja der Meinung war ich auch.

Für das oben modellierte Dekorierer-Muster soll ich die Methode int gehalt() anlegen. Die Methode gehalt soll für den mit Hilfe der Objekte des Dekorierer Musters beschriebenen Mitarbeiter das insgesamt zu zahlende Gehalt ermitteln. Wie würde den für sowas die Java Implementierung Aussehen.

Marcel20X hat dieses Bild (verkleinerte Version) angehängt:
version 6.png

21.05.2019 20:38
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Aber "Person" zu implementieren hilft nicht viel, weil die ja noch gar keine gehalt() Methode hat.
Du musst das so machen:
Ein Interface Mitarbeiter mit der Methode int gehalt().
Eine KonkreteMitarbeiter-Klasse, die ein Grundgehalt in einem Feld speichert, das Mitarbeiter Interface so implementiert, dass die gehalt()-Methode dieses Grundgehalt zurück gibt.
Eine abstrakte Klasse MitarbeiterDekorier, die eine Referenz auf ein Mitarbeiter-Objekt hält und selbst das Mitarbeiter Interface implementiert, indem es die int gehalt()-Methode an das referenzierte Mitarbeiter-Objekt delegiert, das es sich im Konstruktor merkt.
Ob man diese abstrakte Klasse überhaupt braucht ist noch eine andere Frage. Vielleicht in Java nicht so wichtig...
Ähnlich sehen dann die ProjektleitungDekorierer, KundenbetreuungDekorierer und VeranstaltungsorganisationDekorierer aus:
Der Konstruktor nimmt ein Mitarbeiter entgegen und merkt sich die Referenz in einer Member-Variablen. Die int gehalt() Methode ruft selbst die gehalt()-Methode des referenzierten Mitarbeiters auf und addiert dann selbst noch die eigenen Boni dazu, je nach Art des Dekorierers und wieviele Projekte/Kunden/Veranstaltungen jeweils betreut werden.

Verstehst Du, wenn man dieses Konstrukt dann verwendet überhaupt? Vielleicht sollte man damit anfangen.

Gruß
Marco
22.05.2019 11:06 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Tomass
Grünschnabel


Dabei seit: 26.12.2022
Beiträge: 7

RE: Dekorierer Klassendiagramm Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ein Mitarbeiter ist eine Person mit einem Namen und einem Grundgehalt. Ein Mitarbeiter kann Zusatzaufgaben übernehmen. Zusatzaufgaben sind: Projektleitung: Für jede Projektleitung wird eine Zulage gezahlt. Kundenservice: Für jede Stunde Kundenservice wird eine Zulage gezahlt.
Das Modell ist sowohl für die Erstellung von Inhalten als auch für die Verwaltung dieser Inhalte geeignet. Beide Seiten bieten kostenlose und Premium-Optionen an, sodass du dich für diejenige entscheiden kannst, die am besten zu dir passt.
27.12.2022 11:39 Tomass ist offline Beiträge von Tomass suchen Nehmen Sie Tomass in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Dekorierer Klassendiagramm