Inhalt Abbildung PDF Source OO-Designkurs
 |<    <     >    >|  Generated by CoCoDiL

2 Refactoring

2.1 Klassen

2.1.1 Ein oder zwei Klassen


Abb. 2.1: Ein oder 2 Klassen?

Refactoring. Extract Class, Inline Class

2.1.2 Vorteile kleiner Klassen

2.1.3 Extract Subclass

Was ist bei diesem Design problematisch?


Abb. 2.2: Hier kann Extract Subclass verwendet werden

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.


Abb. 2.3: Beispiel von Extract Subclass

Refactoring Extract Subclass

2.1.4 Rollen Status Pattern

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.


Abb. 2.4: Status Pattern

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:


Abb. 2.5: Rollen Pattern

Refactoring Entwurfsmuster Plop Buch Band 3, Kapitel 9. * Rollen PDF-File von Martin Fowler.

Inhalt Abbildung PDF Source OO-Designkurs
 |<    <     >    >|  Generated by CoCoDiL