Abbildungsverzeichnis
Abb. 2.1: Ein oder 2 Klassen?
Abb. 2.2: Hier kann Extract Subclass verwendet werden
Abb. 2.3: Beispiel von Extract Subclass
Abb. 2.4: Status Pattern
Abb. 2.5: Rollen Pattern
Abb. 2.6: Eine komplizierte Methode
Abb. 2.7: Methode in Klasse umgewandelt
Abb. 2.8: PullUp Field
Abb. 2.9: Template Methode
Abb. 2.10: Template Methode
Abb. 2.11: Ergebnis Template Methode
Abb. 2.12: Probleme mit paralleler Vererbungshierarchie
Abb. 2.13: Delegation statt Vererbung
Abb. 2.14: Verwendung von Polymorphismus
Abb. 2.15: Beispiel ohne Nullobjekt
Abb. 2.16: Beispiel mit Nullobjekt
Abb. 2.17: Adapter Pattern
Abb. 2.18: Verwendung von Behaelter
Abb. 2.19: Das Law of Demeter
Abb. 3.1: Bekanntes Beispiel für ein Schichtenmodell
Abb. 3.2: CRC Karte fuer einen Layer
Abb. 3.3: Klasse die das SRP Prinzip verletzt
Abb. 3.4: Klassen die das SRP Prinzip berücksichtigen
Abb. 3.5: Verletzung Open Closed Prinzip
Abb. 3.6: Offen gegenüber Austausch der Datenbank
Abb. 3.7: Verletzung Liskov Prinzip
Abb. 3.8: Interface Segregation Principle
Abb. 3.9: Ohne Fassade Pattern
Abb. 3.10: Mit Fassade Pattern
Abb. 3.11: Zirkuläre Abhängikeit zweier Klassen
Abb. 3.12: Abhängigkeit aufgelöst
Abb. 4.1: Ein abschreckendes Beispiel
Abb. 4.2: Direkte Verbindung von UI zur Domain Schicht
Abb. 4.3: Trennung Interaktion und Funktion
Abb. 4.4: Struktur komplexer Fenster
Abb. 4.5: CRC Karten Command Pattern
Abb. 4.6: ObjektModell Command Pattern
Abb. 4.7: lose Kopplung durch Beobachter Pattern
Abb. 4.8: Beobachter Pattern mit Dispatcher