Читаю мысли Егора Бугаенко https://www.yegor256.com/2016/04/05/printers-instead-of-getters.html о том что геттеры - зло. Что-то похоже высказывал Аллен Голуб: https://www.javaworld.com/article/2073723/why-getter-and-setter-methods-are-e... .
Краткая мысль: объект не должен раздавать свои внутренние данные налево-направо. Поэтому и геттеров не должно быть.
Но вот что не даёт покоя. Как реализовать при этом подходе простейший use-case:
Есть книжный магазин BookStore. Требуется узнать какие в нём есть книги автора по его фамилии.
«Неправильный» и простейший поход, который напишет 9 из 10 разработчиков (язык неважен, хоть со стримами в java, всё одно в коде буду геттеры):
class BookStore
{
List<Book> searchByAuthor(String author)
{
List<Book> found;
for (int i = 0; i < this.books.length; i++) {
// EVIL
if (this.books[i].getAuthor() == author) {
found.append(this.books[i]);
}
}
return found;
}
};
Не пойму как реализовать этот use-case следуя парадигме вышеуказанных авторов без геттеров?