La implementación de lectura y escritura probablemente tenga una alta probabilidad de ser altamente coherente. Si uno cambiara, también lo haría el otro. La alta cohesión es una fuerte indicación de una responsabilidad única y el Principio de responsabilidad única nos dice que deben agruparse en la misma clase. Si esas operaciones tienen una baja cohesión, es probable que dividirlas mejore la capacidad de mantenimiento.
Sin embargo, si hay consumidores que solo leen datos sin escribir, o solo escriben sin leer, es una indicación de que desde una perspectiva de interfaz debe separar estas operaciones, según lo prescrito por el Principio de segregación de interfaz. Esto significa que los consumidores deben definir dos interfaces de las que pueden depender, mientras que la File
clase implementará ambas interfaces.
Según ( Robert C. Martin ) una responsabilidad es un conjunto de funciones que sirve a un actor en particular.
Un actor debe ser la única fuente de cambio de una responsabilidad dada (debe haber una sola razón para cambiar).
En su caso, primero debe definir a los actores como un primer paso, luego hacer las preguntas:. ¿Hay actores interesados solo en leer archivos y otros en escribir?
Si es el caso, leer y escribir archivos son dos responsabilidades separadas. Debido a que habrá múltiples fuentes de cambios (muchos actores pueden pedir cambiar la lógica de lectura y lo mismo para escribir).
fuente