Wenn Sie das Prinzip der einfachen Verantwortlichkeit anwenden und den Änderungsgrund einer Klasse betrachten, wie bestimmen Sie dann, ob dieser Grund zu granular oder nicht granular genug ist?Prinzip der einfachen Verantwortlichkeit: Granularität des Grundes für die Änderung
Antwort
Ich weiß nicht, dass es eine gute Antwort auf diese eine andere als "Anwendung Ihrer Beurteilung, basierend auf Ihrer Erfahrung." Wenn das nicht klappt, hole Hilfe, was ich denke, was du hier machst;)
Ernsthaft, wenn Sie feststellen, dass Sie eine gazillion Klassen erstellen, um etwas zu tun, was wie ein einfacher Job scheint, dann sind Sie wahrscheinlich zu granular. Wenn Ihre Klassen alle kollossal erscheinen, dann sind Sie wahrscheinlich zu grob. Bitte entschuldigen Sie, wenn das eine Erklärung des Offensichtlichen ist.
Ich denke, das ist einer dieser unscharfen, nicht harten und schnellen Regeln, die uns zeigen, warum wir menschliche Programmierer brauchen. Versuchen Sie einfach etwas, suchen Sie das Gleichgewicht und refaktorieren Sie, wenn Sie feststellen, dass Sie zu weit in die eine oder andere Richtung gehen. Und denken Sie daran: if it's worth doing, it's worth doing badly.
- Ich wäre anfangs nicht allzu besorgt über Granularität. Ich werde mich zunächst mit der Trennung von Bedenken auf einer breiteren Ebene befassen. Grundlegend ist, dass wir hier Übertechnik vermeiden sollten. Aber gerade genug. Ich stimme mit Lucas überein, dass dieser erste Schritt mit Erfahrung verbessert wird.
- Da sich die Anforderungen ändern, wenn ich anfange, die "Gerüche" zu bekommen, wenn mein Verständnis des Problems sich verbessert, würde ich das Design umgestalten, indem ich die getrennten Interessen ausklammere, wenn sie offensichtlich werden. Grundsätzlich sollte die Trennung von Bedenken ebenso evolutionär sein wie bei der Gesamtgestaltung.
- 1. Helfen Sie, das Prinzip der einfachen Verantwortlichkeit zu verstehen
- 2. Was bedeutet das Prinzip der einheitlichen Verantwortlichkeit für die Validierung
- 3. So wenden Sie das Prinzip der einfachen Verantwortlichkeit auf eine Serviceklasse an
- 4. Wie wird das ViewModel in MVVM erstellt, um das Prinzip der einfachen Verantwortlichkeit nicht zu verletzen?
- 5. Sind nicht Informationsexperte/Tell nicht im Widerspruch zum Prinzip der einfachen Verantwortlichkeit?
- 6. Statische Fabrik auf Geschäftsobjekt eine Verletzung des Grundsatzes der einfachen Verantwortlichkeit?
- 7. Ist dies ein Beispiel für das Prinzip der einfachen Verantwortung?
- 8. Was ist ein Beispiel für das Prinzip der einheitlichen Verantwortung?
- 9. Angularjs + Spring Boot Security Änderung Prinzip programmgesteuert
- 10. Meteor GroundDB-Granularität für die Offline-/Online-Synchronisierung
- 11. Was ist die Semantik für die Auswahl des Grundes beim Beenden eines gen_servers?
- 12. Einstellen der Granularität des HTML5-Audio-Event ‚timeupdate‘
- 13. Was ist die angemessene Granularität für Backbone.js Views?
- 14. Wie unterdrückt man die Warnung für "drop_with_repr_extern" mit feiner Granularität?
- 15. Was ist das Prinzip der One Class, One Responsibility?
- 16. OSGi Module/Bundles Granularität
- 17. Designmuster Kette der Verantwortlichkeit Vs Dekorateur
- 18. Multiplikation des Ticketwerts bei Änderung der Ticketmenge
- 19. Granularität im Winterschlaf ORM
- 20. Atomicity des einfachen Zuweisungsoperators
- 21. Zinseszinsberechnung bei Änderung des Kontostandes für data.table
- 22. Änderung der Schlüsselgröße für leveldb
- 23. UNET Änderung der Textur des Kindes Objekt für Kunden
- 24. Einfaches Beispiel für die Änderung des Status von Andoroid
- 25. Änderung des Verhaltens für TStringStream.ReadString in D2009?
- 26. Bedingte Verhinderung der Änderung des Textkastens
- 27. Ausrichtung und Granularität von mmap
- 28. Änderung des Scalatrafilterverhaltens
- 29. Erkennen der Änderung des Knockout View-Modells
- 30. Probleme mit der Änderung des Cursors Bild bei Änderung des Cursors - Leinwand Zeichnung App
+1: Zu viel von einer guten Sache ist schrecklich –