Многие знают эту статью: больше о геттерах и сеттерах . Я думаю, что это делает убедительную работу по изображению злой стороны добытчиков / сеттеров. Я также проверил это, пытаясь преобразовать существующий проект (незаконченный) в код без методов получения / установки. Это сработало. Читаемость кода значительно улучшилась, стало меньше кода, и мне даже удалось избавиться от получателей / установщиков, где я изначально думал, что они действительно необходимы. За исключением одного места.
Получение моделей в части вида - вот где я думаю, что этот подход упускает смысл. В статье автор использует конструктор для экспорта модели. Проблема в том, что контроль над тем, что вкладывается в конструктор, так же велик, как и с геттерами. Да, это скрывает реализацию, то, как она представлена в модели. Но добытчики не получают из модели что-то очень отличное от того, что там было заложено. Если вы создаете объект Money, передавая через конструктор значение «5», то money.getAmount () не будет возвращать эту конвертированную в какую-либо другую валюту или массив в виде одного элемента «5».
То, что вы установили, вы получите. И через представление мы устанавливаем значения, и те значения, которые мы ожидаем, когда мы запрашиваем их (получаем) от объекта, который должен содержать то, что мы установили в первую очередь. Строитель, который будет их экспортировать, ожидает того же.
Это немного долго для вопроса. Но я бы хотел, чтобы меня оспаривали. Являются ли геттеры и сеттеры злыми для переноса данных модели на слой представления?
Есть много людей, которые думают, что добытчики / сеттеры вовсе не злые. Это также не то, что я хотел бы услышать в защиту, так как я думаю, что они ДЕЛАЮТ зло в других местах, чем те, о которых я упоминал.