Inhalt | Abbildung | Source | OO-Designkurs | |||
|< | < | > | >| | Generated by CoCoDiL |
Refactoring. Extract Class, Inline Class |
Was ist bei diesem Design problematisch?
Lösung
Nicht alle Mitarbeiter müssen Urlaub beantragen, oder können Urlaub genehmigen.Wenn einzelne Methoden nur für eine Teilmenge aller Instanzen sinnvoll sind, so deudet dies auf Extract Subclass hin.
Refactoring Extract Subclass |
Das obige Objektmodell ist immer noch nicht flexibel genug. Ein Entwickler kann zum leitenden Mitarbeiter befördert werden, d.h plötzlich verändert sich die Verantwortlichkeiten des Mitarbeiters.
Das Verhalten einer Klasse ist i.a. konstant (ausser man verwendet fiese Tricks).Ein Objekt kann auch nie (Auch hier gibt es unrühmliche Ausnahmen) seine Klasse ändern. In der realen Wert ändern sich aber das Verhalten von Objekten.Eine Lösung zur Modellierung ist das Status-Pattern. Dies wird immer dann verwendet wenn das Verhalten eines Objekts vom Status abhängig ist.
Das Status-Pattern lohnt sich nur, falls ein Objekt seinen Status ändert, ansonsten verwende einfache Vererbung. Das Rollenpattern ist eine spezielle Form des Status-Patterns:
Refactoring Entwurfsmuster Plop Buch Band 3, Kapitel 9. * Rollen PDF-File von Martin Fowler. |
Inhalt | Abbildung | Source | OO-Designkurs | |||
|< | < | > | >| | Generated by CoCoDiL |