Musterliste dibt

In Senza categoria il

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. Entwickler verwenden das Designmuster, indem sie in ihren Entwürfen diese prototypische Mikroarchitektur einführen, was bedeutet, dass Mikroarchitekturen in ihren Entwürfen eine Struktur und Organisation haben, die dem gewählten Designmotiv ähnelt. Obwohl Designmuster praktisch schon seit langem angewendet werden, verharrte die Formalisierung des Konzepts der Designmuster seit mehreren Jahren. [3] 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. Patterns entstand als architektonisches Konzept von Christopher Alexander bereits 1966 (c.f.

“The Pattern of Streets”, JOURNAL OF THE AIP, September 1966, Vol. 32, Nr. 3, S. 273-278). 1987 begannen Kent Beck und Ward Cunningham mit der Idee zu experimentieren, Muster auf Programmieren – speziell Mustersprachen – anzuwenden, und stellten ihre Ergebnisse auf der OOPSLA-Konferenz in diesem Jahr vor. [1] [2] In den folgenden Jahren folgten Beck, Cunningham und andere dieser Arbeit. Kann unsicher sein, wenn es in einigen Sprach-/Hardware-Kombinationen implementiert wird. Es kann daher manchmal als Anti-Muster betrachtet werden. Objektorientierte Entwurfsmuster zeigen in der Regel Beziehungen und Interaktionen zwischen Klassen oder Objekten an, ohne die endgültigen Anwendungsklassen oder Objekte anzugeben, die beteiligt sind.

Muster, die mutablen Zustand implizieren kann ungeeignet für funktionale Programmiersprachen, einige Muster können unnötig in Sprachen, die integrierte Unterstützung für die Lösung des Problems, das sie zu lösen versuchen, und objektorientierte Muster sind nicht unbedingt geeignet für nicht-objektorientierte Sprachen. 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. Es wurden auch Anstrengungen unternommen, um Entwurfsmuster in bestimmten Bereichen zu kodifizieren, einschließlich der Verwendung vorhandener Entwurfsmuster sowie domänenspezifischer Entwurfsmuster. Beispiele hierfür sind Designmuster für Benutzeroberflächen,[6] Informationsvisualisierung,[7] sicheres Design,[8] “sichere Benutzerfreundlichkeit”[9] Webdesign [10] und Geschäftsmodelldesign. [11] Konstruktionsmuster waren ursprünglich in 3 Unterklassifikationen kategorisiert worden, basierend auf der Art des Problems, das sie lösen. Erstellungsmuster bieten die Möglichkeit, Objekte basierend auf den erforderlichen Kriterien und auf kontrollierte Weise zu erstellen. Bei Strukturmustern geht es darum, verschiedene Klassen und Objekte zu organisieren, um größere Strukturen zu bilden und neue Funktionen bereitzustellen. Schließlich geht es bei Verhaltensmustern darum, allgemeine Kommunikationsmuster zwischen Objekten zu identifizieren und diese Muster zu realisieren. Im Software-Engineering ist ein Softwareentwurfsmuster eine allgemeine, wiederverwendbare Lösung für ein häufig auftretendes Problem innerhalb eines bestimmten Kontexts im Softwaredesign.

Es handelt sich nicht um einen fertigen Entwurf, der direkt in Quell- oder Maschinencode umgewandelt werden kann. Vielmehr handelt es sich um eine Beschreibung oder Vorlage, wie ein Problem gelöst werden kann, das in vielen verschiedenen Situationen verwendet werden kann. Entwurfsmuster sind formalisierte Best Practices, die der Programmierer verwenden kann, um häufige Probleme beim Entwerfen einer Anwendung oder eines Systems zu lösen. Designmuster können den Entwicklungsprozess beschleunigen, indem sie erprobte, bewährte Entwicklungsparadigmen bereitstellen. [4] Für das effektive Softwaredesign müssen Probleme berücksichtigt werden, die möglicherweise erst später in der Implementierung sichtbar werden.