Estoy tratando de diseñar siguiendo los principios SÓLIDOS. Lo que he descubierto es que cuando utiliza el "Principio de responsabilidad única" (el S de SOLID), generalmente debe dividir las clases entre los contenedores de datos y los procesadores de datos. Por ejemplo, si tengo una persona de clase con 5 propiedades que se leen desde DB en lugar de poner todo dentro de una clase, creo una clase Persona con las propiedades y otra clase PersonReader que lee esa información de la base de datos y crea la Persona.Usando el "Principio de Responsabilidad Individual" obliga a mis contenedores a tener incubadoras públicas
Si hago eso, tengo que abrir las propiedades de Person para que PersonReader pueda acceder a ellas, pero luego tengo menos encapsulado que poner todo dentro de un recuadro negro y hacer que las propiedades sean solo legibles.
¿Me falta algo o es un inconveniente de este principio?
Gracias de antemano
EDIT: He cambiado el escritor persona a un lector de persona, porque no había necesidad de hacer los emisores de propiedad pública al principio.
¿Por qué tener un PersonWriter requiere que sus Person setters sean públicos? – Marcie
@Marcie: gracias, fue mi maldad. He editado la pregunta. –