The Gang Of Four

Gang of four 

Unter dem Begriff Gang of Four (GoF) werden langläufig im Internet die essentiellen Design Patterns für die Objektoerientierte Programmierung zusammengefasst. Mit Hilfe dieser kann Source Code effektiver, verständlicher und weniger Fehlerbehaftet entwickelt werden. Im Weiteren Verlauf werden die Patterns angeführt und in weiteren Artikeln Pattern für Pattern erklärt.

Der Begriff Gang of Four bezeichnet die vier Authoren Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides welche 1994 das Buch Elemente wiederverwendbarer objektorientierter Software (ISBN 3-8273-2199-9) (Originaltitel Design Patterns. Elements of Reusable Object-Oriented Software) veröffentlichten. Grund für die Abkürzung ist der zu lange Name des Buches, daher wurde das Buch oft als GoF Book abgekürzt. Heute findet man in Source Code Kommentaren (vorallem Open Source Projekte) immer wieder Einträge wie GOF:2, welches auf ein bestimmtes Pattern (=Entwurfsmuster) im Buch hinweisen soll.

Erzeugungsmuster (creational patterns)

Erzeugermuster abstrahieren Objekterzeugungsprozesse. Für die Klassenmuster nutzen man die Möglichkeit der Vererbung von Objekten, um die Klasse des zu erzeugenden Objekts zu variieren. Objektmuster hingegen delegieren die Objekterzeugung an andere Objekte und erzeugen dieses nicht einfach via new.

  • Klassenmuster
    • Fabrikmethode (factory method, virtual constructor)
  • Objektmuster
    • Abstrakte Fabrik (abstract factory, kit)
    • Einzelstück (singleton)
    • Erbauer (builder)
    • Prototyp (prototype)

Strukturmuster (structural patterns)

Strukturmuster fassen Klassen und Objekte zu größeren Strukturen zusammen. Klassenmuster fassen dabei Schnittstellen (Typen) und Implementierungen (Klassen) zusammen, während Objektmuster Objekte in eine Struktur einordnen. Durch Klassenmuster beschriebene Strukturen sind zur Übersetzungszeit festgelegt. Die durch Objektmuster beschriebenen Strukturen sind zur Laufzeit änderbar.

  • Klassenmuster
    • Adapter (adapter, wrapper) (Adapter mit Vererbung oder Klassenadapter)
  • Objektmuster
    • Adapter (adapter, wrapper) (Adapter mit Assoziation oder Objektadapter).
    • Brücke (bridge, handle/body)
    • Dekorierer (wrapper)
    • Fassade (façade)
    • Fliegengewicht (flyweight)
    • Kompositum (composite)
    • Stellvertreter (proxy, surrogate)

Verhaltensmuster (behavioral patterns)

Verhaltensmuster beschreiben die Interaktion zwischen Objekten und komplexen Kontrollflüssen. Klassenmuster teilen die Kontrolle auf verschiedene Klassen auf, Objektmuster nutzen Komposition an Stelle von Vererbung.

  • Klassenmuster
    • Interpreter (interpreter)
    • Schablonenmethode (template method)
  • Objektmuster
    • Beobachter (observer, dependents, publish-subscribe, listener)
    • Besucher (visitor)
    • Iterator (iterator, cursor)
    • Kommando (Befehl, command, action, transaction)
    • Memento (memento, token)
    • Strategie (strategy, policy)
    • Vermittler (mediator)
    • Zustand (state, objects for state)
    • Zuständigkeitskette (chain of responsibility)

 

Knowledge is for everybody ...

Schreibe einen Kommentar