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 :P

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!

1 Comment so far

  1. Tom on Oktober 9th, 2008

    Da bin ich ja mal gespannt :) Das ist eigentlich ein voll interessantes Thema. Jeder Entwickler sollte sich mal damit auseinander setzen.

Leave a Reply