Seite wählen

Aber mit dem Dekorator-Muster wird nur 16 Klassen in diesem Szenario erfordern. möchten sie wetten? 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. In diesem Beitrag werden wir ein grundlegendes Entwurfsmuster für jeden klassifizierten Typ durchlaufen. Mehrere herausragende Bücher wurden bereits geschrieben, zum Beispiel Learning JavaScript Design Patterns (Volume 1.7.0 ist komplett kostenlos online) von Addy Osmani. Aber die Beispiele sind mir zu fad. Er sollte mehr reale Beispiele vor allem aus Rahmen verwenden. Es gibt auch eine großartige Website namens refactoring.guru, die einem einen Vorgeschmack auf Designmuster gibt (auch inspiriert von GoF) oder das vollständige Buch für einen kleinen Preis, aber er verwendet verdammte Katzen und andere dumme reale Objekte, um Anwendungsfälle in UML zu demonstrieren. UML ist zu sehr abstrakt. Anfänger bis hin zu fortgeschrittenen Programmierern brauchen ein Beispiel aus der Praxis, um die Kernideen wirklich zu verstehen.

Peter Norvig liefert ein ähnliches Argument. Er 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). Designmuster können den Entwicklungsprozess beschleunigen, indem sie erprobte, bewährte Entwicklungsparadigmen bereitstellen. Effektives Softwaredesign erfordert die Berücksichtigung von Problemen, die möglicherweise erst später in der Implementierung sichtbar werden. Die Wiederverwendung von Entwurfsmustern hilft, subtile Probleme zu vermeiden, die große Probleme verursachen können, und verbessert die Lesbarkeit von Code für Programmierer und Architekten, die mit den Mustern vertraut sind. Die unsachgemäße Verwendung von Mustern kann die Komplexität unnötig erhöhen. [28] Die GoF schrieb das Buch in einem C++-Kontext, aber es ist immer noch sehr relevant für die Java-Programmierung. C++ und Java sind beide objektorientierte Sprachen. Die GoF-Autoren sahen durch ihre Erfahrung in der Codierung von großen Unternehmenssystemen mit C++ gemeinsame Muster entstehen. Diese Entwurfsmuster sind nicht nur für C++ eindeutig. Die Entwurfsmuster können in jeder objektorientierten Sprache angewendet werden.

Im Software-Engineering ist das zusammengesetzte Muster ein partitionierendes Entwurfsmuster. Das zusammengesetzte Muster beschreibt eine Gruppe von Objekten, die auf die gleiche Weise behandelt werden wie eine einzelne Instanz desselben Objekttyps. Die Absicht eines Kompositisten besteht darin, Objekte in Baumstrukturen zu „komponieren“, um teilganze Hierarchien darzustellen.