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.
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.