Muster gueltig-design

Um Flexibilität zu erreichen, führen Designmuster in der Regel zusätzliche Indirektionsstufen ein, die in einigen Fällen die resultierenden Designs erschweren und die Anwendungsleistung beeinträchtigen können. Die jährlichen Sitzungsberichte der Pattern Languages of Programming Conference [12] enthalten viele Beispiele für domänenspezifische Muster. Es wurde beobachtet, dass Designmuster nur ein Zeichen dafür sein können, dass einige Features in einer bestimmten Programmiersprache fehlen (z. B. Java oder C++). Peter Norvig zeigt, dass 16 der 23 Muster im Design Patterns Buch (das sich in erster Linie auf C++ konzentriert) in Lisp oder Dylan vereinfacht oder eliminiert werden (über direkte Sprachunterstützung). [26] Entsprechende Beobachtungen wurden von Hannemann und Kiczales gemacht, die mehrere der 23 Entwurfsmuster mit einer aspektorientierten Programmiersprache (AspectJ) implementierten und zeigten, dass Abhängigkeiten auf Codeebene aus den Implementierungen von 17 der 23 Entwurfsmuster entfernt wurden und dass eine aspektorientierte Programmierung die Implementierung von Designmustern vereinfachen könnte. [Zitat erforderlich] Siehe auch Paul Grahams Essay “Revenge of the Nerds”. [27] Software-Design-Techniken sind schwierig, auf eine breitere Palette von Problemen anzuwenden. [Zitat erforderlich] Entwurfsmuster bieten allgemeine Lösungen, die in einem Format dokumentiert sind, das keine Besonderheiten erfordert, die mit einem bestimmten Problem verknüpft sind. Muster werden oft mit Algorithmen verwechselt, da beide Konzepte typische Lösungen für einige bekannte Probleme beschreiben. Während ein Algorithmus immer einen klaren Satz von Aktionen definiert, die ein Ziel erreichen können, ist ein Muster eine allgemeinere Beschreibung einer Lösung. Der Code des gleichen Musters, der auf zwei verschiedene Programme angewendet wird, kann unterschiedlich sein.

Per Definition muss ein Muster neu in jede Anwendung programmiert werden, die es verwendet. Da einige Autoren dies als einen Schritt zurück von der Software-Wiederverwendung sehen, wie sie von Komponenten bereitgestellt werden, haben Forscher daran gearbeitet, Muster in Komponenten umzuwandeln. Meyer und Arnout konnten zwei Drittel der versuchten Muster vollständig oder teilweise komponenten. [5] Wer hat Muster erfunden und wann? Können Sie Muster außerhalb der Softwareentwicklung verwenden? Wie machen Sie das? Die unsachgemäße Verwendung von Mustern kann die Komplexität unnötig erhöhen. [28] Liste von 22 klassischen Designmustern, gruppiert nach ihrer Absicht. Entwurfsmuster bestehen aus mehreren Abschnitten (siehe Dokumentation unten). Von besonderem Interesse sind die Abschnitte Struktur, Teilnehmer und Zusammenarbeit. Diese Abschnitte beschreiben ein Designmotiv: eine prototypische Mikroarchitektur, die Entwickler kopieren und an ihre jeweiligen Designs anpassen, um das wiederkehrende Problem zu lösen, das durch das Designmuster beschrieben wird. Eine Mikroarchitektur ist eine Reihe von Programmbestandteilen (z. B. Klassen, Methoden…) und deren Beziehungen.