4 Stimmen

Sollte man bei der Implementierung von Entwurfsmustern streng sein?

Ich lese gerade, "Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software" von Erich Gamma und anderen. Ich beschloss, einige kleine Projekte durchzuführen, um das tatsächliche Ergebnis der Anwendung von Entwurfsmustern auf die von mir geschriebene Software zu sehen.

Wie streng sollte ich bei der Umsetzung sein? Ich habe im Internet einige Beispiele gesehen, die die Dolmetschermuster die einfach ganze Klassen/Schnittstellen/Methoden in der Implementierung überspringen. Sollte man das auch tun dürfen, oder ist es besser, bei der Implementierung streng zu sein, um künftige Probleme zu vermeiden, d.h. um die Funktionalität vorab zu unterstützen? Oder sind Design Patterns nicht als die Antwort auf alles zu sehen und sollten sie in einer Weise angewendet werden, die auf die aktuelle Situation zutrifft, d.h. codespezifisch?

10voto

Mike Hofer Punkte 15553

Es gibt kein Patentrezept. Ein Entwurfsmuster ist ein Leitfaden, eine Formel für wiederverwendbare Entwürfe, die in der Vergangenheit bei anderen zur Lösung eines gemeinsamen Problems funktioniert haben. Wenn es jedoch Teile dieses Musters gibt, die unnötigerweise erschweren Ihrer Software, ist es nicht unbedingt erforderlich, dass Sie sie verwenden.

Das Ziel eines Entwurfsmusters ist es, den Entwurf zu vereinfachen und zu rationalisieren. Wenn es das nicht tut, ist es nicht wert, verwendet zu werden.

Andere mögen eine andere Meinung haben.

3voto

Martin York Punkte 245363

Deshalb nennt man sie auch Muster und nicht Algorithmen oder Schnittstellen.

Sie sind eine allgemeine Beschreibung von Designs, die immer wieder in Bewerbungen auftauchen. Jede Implementierung ist auf die jeweilige Situation spezialisiert, obwohl das allgemeine Muster der Vorgehensweise gleich ist.

3voto

Ian Varley Punkte 8897

Bei allem, was Sie mit Entwurfsmustern machen, sollten Sie sich eine einfache Frage stellen können: Wie wird meine Software dadurch besser? ? Seien Sie konkret. Wenn Sie keine konkreten Vorteile der Implementierung eines Entwurfsmusters in Ihrer spezifischen Situation auflisten können, brauchen Sie sich nicht zu bemühen; und wenn Sie den "Kern" des Musters verstehen, werden Sie wahrscheinlich in der Lage sein, die Teile zu implementieren, die für Ihre Situation nützlich sind.

Das Buch Design Patterns ist hier besonders gut - es listet die spezifischen Vorteile jedes Musters auf und beschreibt detailliert, in welchen Fällen sie angemessen sind und warum.

3voto

jamesmillerio Punkte 3074

Zusätzlich zu Ian Varleys Frage "Wie wird meine Software dadurch besser?" Sie können aus dieser Aussage Folgendes ableiten: "Verringert dies die Komplexität meiner Software?" Die Beherrschung der Komplexität ist der Schlüssel zur Entwicklung von Software, und Entwurfsmuster sollten dazu beitragen.

3voto

duffymo Punkte 298898

So ziemlich jeder, der dieses Buch liest, fällt dem "Small Boy With A Pattern"-Syndrom zum Opfer. Man sucht nach Möglichkeiten, Muster in seinen Code einzubauen, egal ob sie passen oder nicht. Schließlich beruhigt man sich und erkennt, dass es in dem Buch ebenso sehr um ein gemeinsames Vokabular für die Kommunikation wie um Codezeilen geht.

Es ist ein großartiges Buch, ein Klassiker. Wenn Sie im Java- oder C#-SDK nachsehen, werden Sie feststellen, dass beide voll von Beispielen sind (z. B. Proxy in Java RMI, Decorator überall im java.io-Paket, Factory in java.sql und JDBC usw.).

Aber ich finde, dass sie am besten funktionieren, wenn sie während des Entwicklungsprozesses entdeckt und nicht in die Codebasis eingefügt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X