Кажется, что если я строго придерживаюсь принципа единой ответственности, то мне, возможно, придется добавить общедоступные методы получения, чтобы разделить функциональные возможности, которые могут измениться. Мне кажется, это нарушает инкапсуляцию, обнажая внутреннюю структуру объектов.
Например, предположим, у меня есть класс, который представляет загруженный файл. В прошлом я использовал такие методы, как toHtml (), чтобы избежать геттеров и поддерживать инкапсуляцию:
public class UploadedFile() {
private String filename;
private String uri;
public String toHtml() {
return <html string>;
}
Но я мог видеть, где можно утверждать, что, основываясь на SRP, вы можете включить геттеры для имени файла и uri и генерировать html в другом месте.