This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
design_patterns [2026/06/14 16:37] 172.19.0.1 old revision restored (2024/01/21 06:43) |
design_patterns [2026/07/11 03:35] (current) 172.19.0.1 old revision restored (2026/07/04 08:43) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Design Patterns ====== | ||
| - | |||
| - | **//Ein Muster//** ist eine Lösung eines Problems in einem bestimmten Kontext. | ||
| - | * Der **Kontext** ist die Situation, in der das Muster angewendet wird. Es sollte eine wiederkehrende Situation sein | ||
| - | * Das **Problem** umfasst das Ziel, das Sie in diesem Kontext erreichen möchten, aber auch alle Einschränkungen (oder Randbedingungen), | ||
| - | * Die **Lösung** ist das, was Sie gern hätten: Ein allgemeiner Entwurf, mit dem jeder das Ziel erreichen und diesen Satz von Einschränkungen überwinden kann. | ||
| - | |||
| - | **// | ||
| - | |||
| - | Musterkategorien: | ||
| - | |||
| - | **// | ||
| - | * Singleton | ||
| - | * Builder | ||
| - | * Prototype | ||
| - | * Factory Method | ||
| - | * Abstract Factory | ||
| - | |||
| - | **// | ||
| - | * Mediator | ||
| - | * Visitor | ||
| - | * Template Method | ||
| - | * Iterator | ||
| - | * Command | ||
| - | * Memento | ||
| - | * Interpreter | ||
| - | * Observer | ||
| - | * Chain of Responsibility | ||
| - | * State | ||
| - | * Strategy | ||
| - | |||
| - | **// | ||
| - | * Proxy | ||
| - | * Decorator | ||
| - | * Composite | ||
| - | * Facade | ||
| - | * Flyweigth | ||
| - | * Bridge | ||
| - | * Adapter | ||
| - | |||
| - | **// | ||
| - | Packt ein Objekt ein und fügt dabei neues Verhalten hinzu | ||
| - | |||
| - | **// | ||
| - | Kapselt zustandsbasiertes Verhalten und wechselt durch Delegieren zwischen den Verhaltensweisen. | ||
| - | |||
| - | **// | ||
| - | Bietet eine Möglichkeit, | ||
| - | |||
| - | **// | ||
| - | Vereinfacht die Schnittstelle für eine Gruppe von Klassen. | ||
| - | |||
| - | **// | ||
| - | Kapselt austauschbares Verhalten und entscheidet mittels Delegierung, | ||
| - | |||
| - | **// | ||
| - | Umschließt ein Objekt und kontrolliert so den Zugriff darauf | ||
| - | |||
| - | **//Factory Method// | ||
| - | Unterklassen entscheiden, | ||
| - | |||
| - | **// | ||
| - | Umschließt ein Objekt und stellt eine andere Schnittstelle dafür zur Verfügung. | ||
| - | |||
| - | **// | ||
| - | Ermöglicht die Benachrichtigung von Objekten, wenn sich eine Zustand ändert. | ||
| - | |||
| - | **// | ||
| - | Unterklassen entscheide, wie die Schritte ein einem Algorithmus implementiert werden. | ||
| - | |||
| - | **// | ||
| - | Clients behandeln Sammlungen von Objekten und Einzelobjekten auf gleiche Weise. | ||
| - | |||
| - | **// | ||
| - | Sorgt dafür, dass nur genau ein Objekt erzeugt wird. | ||
| - | |||
| - | **// | ||
| - | Ermöglicht des einem Client, Familien von Objekten zu erstellen, ohne konkrete Klassen anzugeben. | ||
| - | |||
| - | **// | ||
| - | Kapselt einen Auftrag als in Objekt. | ||
| - | |||
| - | Punkt für Punkt: | ||
| - | * Verwenden Sie Muster in Ihren Entwürfen nur dann, wenn es sich auf natürliche Weise ergibt, und nicht zwangsweise, | ||
| - | * Entwurfsmuster sind nicht in Stein gemeißelt; Sie können sie so anpassen und zurecht biegen, wie Sie sie gerade brauchen. | ||
| - | * Verwenden Sie immer die einfachste Lösung, die Ihren Anforderungen entspricht, selbst wen sie kein Muster umfasst. | ||
| - | * Studieren Sie Musterkataloge, | ||
| - | * Mit Musterklassifikationen (oder -kategorien) lassen sich Muster in Gruppen einteilen. Wenn es Ihnen weiterhilft, | ||
| - | * Um selbst Muster zu schreiben, müssen Sie viel Engagement, Zeit und Geduld mitbringen, und Sie müssen bereit sein, eine Menge Code-Verbesserungen durchzuführen. | ||
| - | * Denken Sie daran, dass die meisten Muster, denen Sie begegnen werden, Anpassungen existierender Muster sind und keine neuen Muster. | ||
| - | * Erweitern Sie das gemeinsame Vokabular in Ihrem Team - einer der größten Vorteile, die Sie aus der Verwendung von Mustern ziehen können. | ||
| - | * Wie jede Gemeinschaft hat auch die Mustergemeinde ihren eigenen Fachjargon. Lassen Sie sich davon nicht abschrecken. | ||
| - | |||
| ===== OO-Basics ===== | ===== OO-Basics ===== | ||