Получение вещей широко распространено и безопасно. Но это очень плохая практика.
Проблемы
- Именование
- Скрытие информации
- Связь
- Нарушение инкапсуляции
- Изменчивость
- Анемичные модели
Решения
- Избегайте геттеров
- Вместо этого используйте доменные имена
- Защитите свои решения по внедрению.
Образец кода
Неправильный
Правильно
Обнаружение
Геттеры совпадают в определенных сценариях с настоящей ответственностью. Окну будет разумно вернуть свой цвет, и оно может случайно сохранить его как цвет. Так что метод color (), возвращающий цвет атрибута, может быть хорошим решением.
getColor () прерывает биекцию, поскольку она является реализационной и не имеет реального аналога в наших картографах.
Большинство линтеров могут предупредить нас, если обнаруживают анемичные модели с геттерами и сеттерами.
Теги
- Скрытие информации
Вывод
Геттеры и сеттеры - это плохо налаженная практика. Вместо того, чтобы сосредоточиться на поведении объекта (существенно), мы отчаянно пытаемся понять сущность объекта (случайно) и нарушаем их реализацию.
связи
Больше информации
Ценность прототипа заключается в образовании, которое он дает вам, а не в самом коде.
Алан Купер
Эта статья является частью серии CodeSmell.