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?

2voto

ChrisW Punkte 53239

Sollte man ... die Funktionalität vorfinanzieren?

Das hängt davon ab, wie schnell Sie diese Funktion benötigen und wie absolut sicher ob Sie es überhaupt brauchen, aber oft lautet die Antwort "nein": Googeln Sie nach dem Begriff YAGNI

Nun, was ich eigentlich meinte, war, dass einer der Zwecke von Entwurfsmustern die Wiederverwendbarkeit ist und ich den Code in anderen Projekten wiederverwenden könnte.

Meine Politik bzw. die YAGNI-Politik lautet in der Regel so:

  1. Code was ich jetzt brauche
  2. Wenn ich später etwas anderes brauche, dann verwende ich das, was ich vorher geschrieben habe, wieder und/oder ändere es, vielleicht durch Refaktorierung

Beide Schritte sind schneller und einfacher, wenn ich sie nicht von vornherein einführe und später keine Funktionen ändern muss, für die ich noch nicht einmal einen Bedarf habe.

1voto

mmx Punkte 400975

Wie schon einmal bei SO, Ihr Gehirn benutzen ist der beste Weg, gute Software zu schreiben. Alles hängt von der jeweiligen Situation ab.

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