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