www.wikidata.de-de.nina.az
Entwurfsmuster Elemente wiederverwendbarer objektorientierter Software Originaltitel Design Patterns Elements of Reusable Object Oriented Software ist ein 1994 von Erich Gamma Richard Helm Ralph Johnson und John Vlissides herausgegebenes Buch uber wiederverwendbare Entwurfsmuster und gilt als eines der Standardwerke im Bereich Softwaretechnik Die Autoren werden oft auch als Viererbande englisch Gang of Four GoF bezeichnet Der Grund fur das Entstehen dieser Abkurzung ist angeblich dass der Name des Buches und der Autoren zu lang sei um ihn in einer E Mail zu zitieren Deshalb wird er oft nur als GoF book abgekurzt Im Quellcode mancher Open Source Projekte finden sich Kommentare wie GOF 175 der auf das Entwurfsmuster Decorator in der englischen Ausgabe des Buches hinweist 1 Inhaltsverzeichnis 1 Struktur 2 Klassifikation 2 1 Erzeugungsmuster Creational patterns 2 2 Strukturmuster Structural patterns 2 3 Verhaltensmuster Behavioral patterns 3 Werke 4 Weblinks 5 EinzelnachweiseStruktur BearbeitenDie Beschreibung eines Entwurfsmusters durch die Gang of Four folgt folgendem Schema Name und Klassifikation des Musters Zweck des Musters Synonyme Andere bekannte Namen des Musters Motivation Hinter Grunde fur den Einsatz des Musters Anwendbarkeit Einsatzbereiche fur das Muster Struktur Beschreibung der allgemeinen Struktur des Musters Beteiligte Akteure Klassen die an dem Muster beteiligt sind Zusammenspiel der beteiligten Klassen Konsequenzen Welche Vor und Nachteile gibt es Implementierung Praxisrelevante Tipps Tricks und Techniken sowie Warnung vor Fehlern die leicht passieren konnen Beispielcode Quellcodefragment das den Einsatz des Musters zeigt Praxiseinsatz Wo wird das Muster bereits eingesetzt Querverweise Wie spielt das Muster mit anderen Mustern zusammen Generell sollte die Dokumentation eines Entwurfsmusters ausreichende Informationen uber das Problem das das Muster behandelt uber den Kontext der Anwendung und uber die vorgeschlagene Losung bereitstellen Viele Autoren lehnen ihren Aufbau an den der Beschreibungen der Gang of Four an und adaptieren sie an ihre Bedurfnisse Klassifikation BearbeitenDie Autoren klassifizieren Muster nach den beiden Kriterien des Zwecks purpose und des Bereichs scope auf den sie wirken Nach dem Zweck des jeweiligen Musters unterscheiden sie drei Gruppen Die erste Gruppe der Erzeugungsmuster bezieht sich auf die Erzeugung von Objekten So kann man etwa die Anzahl von erzeugten Objekten einer Klasse kontrollieren wollen oder man will den konkreten Typ der erzeugten Objekte abhangig von den jeweiligen Bedingungen anpassen Die zweite Gruppe umfasst Strukturmuster die eine Vereinfachung der Struktur zwischen Klassen ermoglichen sollen Komplexe Beziehungsgeflechte konnen beispielsweise uber vermittelnde Klassen oder Schnittstellen logisch vereinfacht werden Die dritte Gruppe der Verhaltensmuster betrifft das Verhalten der Klassen Hierbei handelt es sich um die grosste Gruppe von Mustern Sie beziehen sich auf die Zusammenarbeit und den Nachrichtenaustausch von Objekten Nach ihrem Anwendungsbereich lassen sich Muster in Klassen und Objektmuster einteilen Klassenmuster beschreiben Beziehungen zwischen Klassen und bauen vorrangig Vererbungsstrukturen auf Die Strukturen sind damit zur Ubersetzungszeit festgelegt Hingegen nutzen Objektmuster vorrangig Assoziationen und Aggregationen zur Beschreibung von Beziehungen zwischen Objekten Die durch sie beschriebenen Strukturen zwischen Objekten sind zur Laufzeit dynamisch anderbar Erzeugungsmuster Creational patterns Bearbeiten Erzeugungsmuster abstrahieren Objekterzeugungsprozesse Klassenmuster nutzen dabei Vererbung um die Klasse des zu erzeugenden Objekts zu variieren Objektmuster delegieren die Objekterzeugung an andere Objekte Klassenmuster Fabrikmethode factory method virtual constructor Objektmuster Abstrakte Fabrik abstract factory kit Einzelstuck singleton Erbauer builder Prototyp prototype Strukturmuster Structural patterns Bearbeiten Strukturmuster fassen Klassen und Objekte zu grosseren Strukturen zusammen Klassenmuster fassen dabei Schnittstellen Typen und Implementierungen Klassen zusammen wahrend Objektmuster Objekte in eine Struktur einordnen Durch Klassenmuster beschriebene Strukturen sind zur Ubersetzungszeit festgelegt Die durch Objektmuster beschriebenen Strukturen sind zur Laufzeit anderbar Klassenmuster Adapter adapter wrapper Adapter mit Vererbung oder Klassenadapter Objektmuster Adapter adapter wrapper Adapter mit Assoziation oder Objektadapter Brucke bridge handle body Dekorierer decorator Fassade facade Fliegengewicht flyweight Kompositum composite Stellvertreter proxy surrogate Verhaltensmuster Behavioral patterns Bearbeiten Verhaltensmuster beschreiben die Interaktion zwischen Objekten und komplexen Kontrollflussen 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 Zustandigkeitskette chain of responsibility Werke BearbeitenErich Gamma Richard Helm Ralph Johnson John Vlissides Design Patterns Elements of Reusable Object Oriented Software Addison Wesley 1995 ISBN 0 201 63361 2 Erich Gamma Richard Helm Ralph Johnson John Vlissides Entwurfsmuster Elemente wiederverwendbarer objektorientierter Software Addison Wesley Munchen 2004 ISBN 3 8273 2199 9 Weblinks BearbeitenGoF Design Patterns with examples using Java and UML2 a quick guide book to the basic GoF design patterns PDF englisch Einzelnachweise Bearbeiten Entwurfsmuster Elemente wieder verwendbarer objektorientierter Software In heise Developer Heise Zeitschriften Verlag 22 Juli 2010 abgerufen am 5 August 2010 In dem Zusammenhang ist es auch nicht verwunderlich dass man zum Beispiel in manchen Open Source Quelltexten nur noch GoF 175 schreibt also den Verweis auf das Decorator Muster in der englischen Ausgabe des Buchs V DEntwurfsmusterErzeugungsmuster Abstrakte Fabrik Erbauer Fabrikmethode Prototyp Singleton Multiton ObjektpoolStrukturmuster Adapter Brucke Decorator Fassade Fliegengewicht Kompositum StellvertreterVerhaltensmuster Beobachter Besucher Interpreter Iterator Kommando Memento Schablonenmethode Strategie Vermittler Zustand Zustandigkeitskette Interceptor Nullobjekt ProtokollstapelMuster fur objektrelationale Abbildung Datentransferobjekt Table Data Gateway Row Data Gateway Active Record Unit of Work Identity Map Lazy Loading Identity Field Dependent Mapping Embedded Value Serialized LOB Inheritance Mapper Metadata Mapping Query Object Command Query Responsibility SegregationNachrichtenubermittlungsmuster Message Command Message Document Message Event Message Request Reply Return Address Correlation Identifier Message Sequence Message Expiration Format Indicator Message Channel Point to Point Channel Publisher Subscriber Channel Datatype Channel Invalid Message Channel Dead Letter Channel Guaranteed Delivery Channel Adapter Messaging Bridge Message Bus Pipes and Filters Message Router Content based Router Message Filter Dynamic Router Recipient List Splitter Aggregator Resequencer Composed Message Processor Scatter Gather Routing Slip Process Manager Message Broker Message Translator Envelope Wrapper Content Enricher Content Filter Claim Check Normalizer Canonical Data Model Message Endpoint Messaging Gateway Messaging Mapper Transactional Client Polling Consumer Event driven Consumer Competing Consumers Message Dispatcher Selective Consumer Durable Subscriber Idempotent Receiver Service Activator Control Bus Detour Wire Tap Message History Message Store Smart Proxy Test Message Channel PurgerAndere Application Controller Business Delegate Data Access Object Dependency Injection Extension Interface Fluent Interface Inversion of Control IoC Lock Model View Controller MVC Model View Presenter MVP Model View Update MVU Model View ViewModel MVVM Page Controller Registry Remote Facade Repository Service Locator Session State Table Module Template View Threadpool Transaction Script Transform View Two Step View Value ObjectSiehe auch Analysemuster Architekturmuster Abgerufen von https de wikipedia org w index php title Entwurfsmuster Buch amp oldid 206113471