Frage

Ich war Robert Martin Clean Code zu lesen und dass er erwähnt, über den Code zu sein hochkohäsiv:

sollten Klassen haben eine kleine Anzahl von Instanzvariablen. Jedes von den Methoden einer Klasse sollte manipulieren eine oder mehrere dieser Variablen. Im Allgemein Die variablere Verfahren manipuliert die geschlossenere, dass Methode ist zu seiner Klasse. Eine Klasse in die jede Variable von jedem verwendet Methode ist maximal cohesivemethod beträgt maximal Kohäsions

Aber wenn wir versuchen gleichzeitig, Code zu schreiben, sind wir bestrebt, den Umfang der Variablen zu einem einzigen Verfahren zu begrenzen Rennbedingungen zu vermeiden. Aber diese Ergebnisse in Code, ist am wenigsten Kohäsions.

Wenn Sie eine Anwendung / Klasse entwerfen, was sollten Sie bevorzugen - Kohäsion oder Concurrency?

War es hilfreich?

Lösung

Ich mag nicht wenige von Martins Konzepte, aber Ihr Code Bedürfnisse auszuführen richtig und wenn es nicht der Fall ist, all die schönen Metriken in der Welt wollen nicht, dass Sie besser aussehen lassen.

hinzufügen, dass dieses Threadingprobleme gehören zu den schlimmsten gibt es zu debuggen, und Sie sollten keine Kompromisse Ihr Design für die Parallelität mit Ihrer Idee zu entsprechen, was jemand schrieb in einem Buch über den Zusammenhalt. Noch einmal, ich bin Klopfen Martin nicht ... Ich bin sicher, dass er Ihnen die gleiche Sache sagen würde. Schließlich erkennt er, dass auf einem Kontinuum fast alles, was in den meisten seiner Schriften ist.

Ich bin sicher, dass nicht Sie setzen den Schwerpunkt in genau dem richtigen Ort, obwohl (könnte nur die Art und Weise sein, ich Ihre Frage bin zu lesen). Martin sagt nicht, dass Sie so viele Variablen auf Klassenebene wie möglich leben machen sollten. Er sagt, dass der Klassenstufe Variablen, wie viele verwenden Sie? Wenn Sie Variablen fördern, um die Sie nicht benötigen, können Sie nicht höher Kohäsionskraft bekommen ... Sie könnten immer enger Kopplung werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top