Design Pattern – Entwurfsmuster
Da ich schon oft schlecht designte Software gesehen habe (und auch schon selber geschrieben habe
) hab ich mich mal entschlossen etwas über Entwurfsmuster zu schreiben. Ausserdem kann ich so auch selber nochmal nachlesen
Was ist überhaupt ein EntwurfsmusterW?
Ein Entwurfsmuster (engl.design pattern) beschreibt eine bewährte Lösungs-Schablone für ein Entwurfsproblem. Es stellt damit eine wiederverwendbare Vorlage zur Problemlösung dar, die in einem spezifischen Kontext einsetzbar ist. Entstanden ist der Ausdruck in der Architektur, von der er für die Softwareentwicklung übernommen wurde. In den letzten Jahren hat der Ansatz der Entwurfsmuster auch zunehmendes Interesse im Bereich der Mensch-Computer-Interaktion gefunden. Aber auch in nicht-informatischen Bereichen findet diese Idee immer mehr Eingang.
Also ein definiertes Herangehen zum Lösen eines Problems.
Warum sollte ich Entwurfsmuster nutzen?
- Die Software bleibt flexibel für Änderungen
- bessere Kommunikation mit Entwicklern (man brauch sein Design nicht im Detail erklären, sondern es reicht wenn man z.B. sagt “Ich hab das Factory-Pattern benutzt” und schon weis ein anderer Entwickler bescheid wovon man redet.
Was gibt es für Muster?
| Erzeugende Muster | Strukturelle Muster | Verhaltensmuster | Weitere Muster |
|---|---|---|---|
| Abstract Factory (Abstrakte Fabrik) | Adapter | Chain of Responsibility (Zuständigkeitskette) | Business Delegate |
| Builder (Erbauer) | Composite (Kompositum) | Command (Kommando) | Data Access Object |
| Factory Method (Fabrikmethode) | Bridge (Brücke) | Interpreter | Data Transfer Object (Datentransferobjekt) |
| Prototype (Prototyp) | Decorator (Dekorierer) | Iterator | Dependency Injection |
| Singleton (Einzelstück) | Facade (Fassade) | Mediator (Vermittler) | Inversion of Control |
| Flyweight (Fliegengewicht) | Memento | Model View Controller | |
| Proxy (Stellvertreter) | Null Object (Nullobjekt) | Model View Presenter | |
| Observer (Beobachter) | Plugin | ||
| State (Zustand) | |||
| Strategy (Strategie) | |||
| Template Method (Schablonenmethode) | |||
| Visitor (Besucher) |
Ich werde hier nicht auf alle Muster eingehen die es gibt, sondern nur die wichtigsten und gebräuchlichsten erklären. Für alle anderen kann man ja immernoch woanders nachlesen
Da das doch etwas umfangreicher wird, werde ich wohl noch nen kleines Stück brauchen um etwas über das erste Muster zu schreiben… Den Anfang wird auf jeden Fall das Strategy (Strategie) Muster machen…
Stay tuned!
Comments(1)
Da bin ich ja mal gespannt
Das ist eigentlich ein voll interessantes Thema. Jeder Entwickler sollte sich mal damit auseinander setzen.