Prinzip der Einzelverantwortung:Granularität des Grundes für die Änderung

StackOverflow https://stackoverflow.com/questions/27018

  •  09-06-2019
  •  | 
  •  

Frage

Wenn Sie das Prinzip der Einzelverantwortung anwenden und den Änderungsgrund einer Klasse betrachten, wie stellen Sie fest, ob auch dieser Änderungsgrund zu detailliert oder nicht detailliert genug ist?

War es hilfreich?

Lösung

Ich weiß nicht, dass es eine gute Antwort auf diese gibt, als "Ihr Urteilsvermögen anwenden, basierend auf Ihren Erfahrungen". Wenn Sie dies nicht tun, holen Sie sich Hilfe, was ich denke, was Sie hier tun;)

Aber im Ernst: Wenn Sie feststellen, dass Sie Unmengen von Klassen erstellen, um eine scheinbar einfache Aufgabe zu erledigen, dann gehen Sie wahrscheinlich zu detailliert vor.Wenn Ihre Klassen alle kolossal erscheinen, dann sind Sie wahrscheinlich zu grob.Bitte entschuldigen Sie, wenn das eine Aussage des Offensichtlichen ist.

Ich denke, dies ist einer dieser unscharfen Fälle, in denen es keine festen Regeln gibt, die uns zeigen, warum wir menschliche Programmierer brauchen.Probieren Sie einfach etwas aus, suchen Sie nach einem Gleichgewicht und überarbeiten Sie es, wenn Sie feststellen, dass Sie in die eine oder andere Richtung zu weit gehen.Und merke dir: Wenn es sich lohnt, es zu tun, lohnt es sich, es schlecht zu machen.

Andere Tipps

  1. Über die Granularität würde ich mir anfangs keine allzu großen Sorgen machen.Ich werde mich zunächst nur auf einer breiteren Ebene mit der Trennung von Belangen befassen.Der grundlegende Punkt ist, dass wir hier ein Over-Engineering vermeiden sollten.Aber gerade genug.Ich bin einverstanden mit Lucas hier, dass dieser erste Schritt mit der Erfahrung besser wird.
  2. Wenn sich die Anforderungen ändern, wenn ich anfange, die „Gerüche“ wahrzunehmen, wenn sich mein Verständnis des Problems verbessert, würde ich den Entwurf umgestalten, indem ich die einzelnen Bedenken ausklammere, sobald sie offensichtlich werden.Grundsätzlich soll die Trennung von Belangen ebenso wie das Gesamtdesign evolutionär erfolgen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top