Question

Je lisais propre code de Robert Martin et qu'il mentionne sur le code étant très cohérent:

  

Les classes doivent avoir un petit nombre de   variables d'instance. Chacun de   méthodes d'une classe doivent manipuler   un ou plusieurs de ces variables. Dans   le procédé général une plus variable   manipule plus de cohésion que   méthode est de sa catégorie. Une classe   où chaque variable est utilisée par chaque   méthode est au maximum cohesivemethod est au maximum de cohésion

Mais quand nous essayons d'écrire du code concurrent, nous nous efforçons de limiter la portée des variables à une seule méthode pour éviter les conditions de course. Mais cela se traduit par un code qui est moins cohérent.

Lors de la conception d'une application / classe, ce qui si vous préférez - ou la cohésion Concurrency?

Était-ce utile?

La solution

Je comme tout à fait quelques-unes des concepts de Martin, mais vos besoins de code à exécuter correctement et si elle ne le fait pas, toutes les belles mesures dans le monde ne vont pas vous faire mieux.

Ajoutez à cela que les questions de filetage sont parmi les plus il y a de débogage, et vous ne devriez pas compromettre votre conception pour se conformer à la concurrence votre idée de ce que quelqu'un a écrit dans un livre sur la cohésion. Encore une fois, je ne suis pas frapper Martin ... Je suis sûr qu'il vous dira la même chose. Après tout, il reconnaît que presque tout est sur un continuum dans la plupart de son écriture.

Je ne suis pas sûr que vous mettez l'accent tout à fait au bon endroit que (peut-être la façon dont je lis votre question). Martin ne dis pas qu'il faut faire autant de variables vivent au niveau de la classe possible. Il dit que des variables de niveau de classe, combien utilisez-vous? Si vous faites la promotion des variables que vous n'avez pas besoin, vous risquez de ne pas obtenir plus ... vous cohésivité pourriez obtenir un couplage plus serré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top