Ich bin erfolgreich in der Lage, alle meine alten Anwendungen zu skalieren, bei denen keine dokumentierten Entwurfsmuster verwendet wurden. Welches Muster es auch sein mag, ich weiß es nicht. Ich hatte größtenteils nur das Bedürfnis, einfache OOP-Konzepte zu verwenden.
Das Design Patterns-Konzept ist komplex und schwer zu verstehen. Wie kann bei der Implementierung festgestellt werden, ob die Implementierung korrekt ist und die Anwendung über eine echte lose Kopplung verfügt?
Antworten:
Um die Antwort kurz zu halten, würde ich sagen, wenn die folgenden Merkmale in Ihrem Code sichtbar sind, können Sie sicher sein, dass die Muster vorhanden sind, auch wenn Sie keine absichtlichen Anstrengungen unternommen haben (was kein Problem ist).
Gewünschte Eigenschaften:
Wenn Sie immer noch neugierig sind, Ihren Code zu identifizieren und mit den echten Musternamen zu versehen, würde ich Folgendes empfehlen, um den Ball ins Rollen zu bringen.
Dies sollte Ihnen eine faire Vorstellung geben.
quelle
Sie erwähnen sowohl Entwurfsmuster als auch Kopplung. Dies sind separate Konzepte, daher werde ich sie separat behandeln. Die einzige wirkliche Verbindung besteht darin, dass Entwurfsmuster dazu neigen, eine lose Kopplung zu fördern (da dies ein Hauptaspekt eines guten Entwurfs ist).
Designmuster
Das Konzept der Entwurfsmuster ist eigentlich recht einfach: Sie sind nur eine Reihe von Vorlagen, mit denen Sie verschiedene häufig auftretende Probleme lösen können. Es gibt 2 Hauptgründe, warum sie beliebt sind:
Woher weißt du, dass du es richtig implementiert hast? Das ist eine schwierige Frage. Bei den meisten Mustern ist es einfach - Sie haben es entweder kaputt gemacht oder Sie haben es nicht. Einige Muster sind weniger klar definiert als andere - zB Model-View-Controller . Solche Muster werden besser als allgemeine Richtlinien verwendet. Die Besonderheiten der Implementierung sind weniger wichtig als das Verständnis der Gründe für das Vorhandensein des Musters und dessen Zweck.
Designmuster sind nicht der einzig wahre Weg. Oft müssen Sie sie entweder für Ihre speziellen Zwecke anpassen oder es gibt einfach keine Muster, die den Anforderungen entsprechen. Ein Entwurfsmuster zu erzwingen, wo es nicht passt, ist eine schlechte Idee. Es ist, als würde man einen wirklich guten Hammer benutzen, wenn man eigentlich einen Schraubenzieher möchte.
Kupplung
Dies ist eine wirklich wichtige Idee in der Informatik. Da sich die Anforderungen für die meisten Softwareprojekte im Laufe der Zeit (manchmal erheblich) ändern, ist es wichtig, dass ein Design mit Änderungen umgehen kann. Die Kopplung ist im Grunde das Maß dafür, "wie schwer es wäre, diese Komponente gegen eine andere auszutauschen". Die 'Komponente' kann eine Methode, eine Klasse, ein Paket, eine Bibliothek usw. sein.
In diesem Wikipedia-Artikel sind verschiedene Kopplungsarten aufgeführt .
quelle
Die Antwort ist eigentlich der Zweck, zu dem Sie von Anfang an Entwurfsmuster schreiben möchten. Warum möchten Sie Flexibilität für?
Das ist Veränderung. Anforderungen ändern sich. Versuchen Sie, etwas an Ihren Anforderungen zu ändern, das sich in Codeänderungen widerspiegelt, und sehen Sie, wie einfach / schwierig dies ist.
quelle
Die Verwendung von Entwurfsmustern ist eine vorbeugende Maßnahme. Sie verwenden Designmuster, um Ihre Arbeit zu vereinfachen, wenn Sie die Anwendung später skalieren. Natürlich müssen Sie jetzt ein bisschen mehr arbeiten, um Ihre Arbeit später zu erleichtern. Die eigentliche Frage ist also, wie viel Veränderung Sie in Zukunft erwarten können und was diese Veränderung ist. Wenn Sie keine Skalierbarkeit und Flexibilität benötigen, können Sie auf Entwurfsmuster verzichten.
Entwurfsmuster sind selbst eine Implementierung objektorientierter Entwurfsprinzipien. Solange Sie diese Grundsätze einhalten, sind Ihre Anwendungen flexibel und skalierbar. selbst wenn Sie nicht wirklich ein tatsächliches Designmuster haben. Wie Joachim Sauer oben ausgeführt hat, sind sie gemeinsame Lösungen für gemeinsame Probleme.
quelle