Parece que si sigo estrictamente el principio de responsabilidad única, entonces tendré que agregar getters públicos para dividir las funcionalidades que pueden cambiar. Para mí, esto parece violar la encapsulación al exponer la estructura interna de los objetos.¿La adhesión estricta al Principio de Responsabilidad Individual viola la encapsulación?
Por ejemplo, supongamos que tengo una clase que representa un archivo cargado. En el pasado he utilizado métodos como ToHTML() con el fin de evitar captadores y mantener la encapsulación:
public class UploadedFile() {
private String filename;
private String uri;
public String toHtml() {
return <html string>;
}
Pero pude ver dónde se podría argumentar que, sobre la base de SRP, es posible que desee incluir captadores de nombre de archivo y uri y generar el html en otro lugar.