L'implémentation en lecture et en écriture a probablement une forte probabilité d'être très cohérente. Si l'un devait changer, l'autre aussi. Une cohésion élevée est une indication forte d'une responsabilité unique et le principe de responsabilité unique nous dit qu'ils doivent être regroupés dans la même classe. Si ces opérations ont une faible cohésion, il est probable que leur séparation améliore la maintenabilité.
Cependant, si certains consommateurs ne lisent que des données sans écrire, ou écrivent uniquement sans lire, cela indique que du point de vue de l'interface, vous devez séparer ces opérations, comme le prescrit le principe de ségrégation d'interface. Cela signifie que les consommateurs doivent définir deux interfaces sur lesquelles ils peuvent compter, tandis que la File
classe implémentera les deux interfaces.
Selon ( Robert C. Martin ), une responsabilité est un ensemble de fonctions qui sert un acteur particulier.
Un acteur devrait être la seule source de changement d'une responsabilité donnée (il ne devrait y avoir qu'une seule raison de changer).
Dans votre cas, vous devez d'abord définir les acteurs dans un premier temps, puis poser les questions:. Y a-t-il des acteurs qui ne sont intéressés que par la lecture de fichiers et d'autres par l'écriture?
Si c'est le cas, la lecture et l'écriture des fichiers sont deux responsabilités distinctes. Parce qu'il y aura de multiples sources de changements (de nombreux acteurs peuvent demander de changer la logique de lecture et la même chose pour l'écriture).
la source