web-dev-qa-db-fra.com

Lorsque vous suivez Solid, lisez-vous et écrivez des fichiers deux responsabilités distinctes?

Je commence juste à explorer SOLID et je ne suis pas sûr si la lecture des fichiers et la rédaction de fichiers sont la même responsabilité.

La cible est le même type de fichier; Je veux lire et écrire .pdf dans mon application.

L'application est en Python si cela fait de la différence.

13
Kites

La mise en œuvre de la lecture et de l'écriture a probablement une forte probabilité d'être hautement cohérente. Si on changerait, alors l'autre serait l'autre. La haute cohésion est une forte indication d'une responsabilité unique et le principe de responsabilité unique nous dit qu'ils devraient être mis en place dans la même classe. Si ces opérations ont une faible cohésion, des chances sont que les fractionnement d'eux améliorent la maintenabilité.

Si, toutefois, il y a des consommateurs qui ne lisent que des données sans écriture, ou seulement écrire sans lecture, il s'agit d'une indication qu'à partir d'une perspective d'interface, vous devez séparer ces opérations, comme indiqué par le principe de ségrégation de l'interface. Cela signifie que les consommateurs doivent définir deux interfaces qu'ils peuvent compter, tandis que la classe File implémentera les deux interfaces.

24
Steven