Получение вещей широко распространено и безопасно. Но это очень плохая практика.

Проблемы

  • Именование
  • Скрытие информации
  • Связь
  • Нарушение инкапсуляции
  • Изменчивость
  • Анемичные модели

Решения

  1. Избегайте геттеров
  2. Вместо этого используйте доменные имена
  3. Защитите свои решения по внедрению.

Образец кода

Неправильный

Правильно

Обнаружение

Геттеры совпадают в определенных сценариях с настоящей ответственностью. Окну будет разумно вернуть свой цвет, и оно может случайно сохранить его как цвет. Так что метод color (), возвращающий цвет атрибута, может быть хорошим решением.

getColor () прерывает биекцию, поскольку она является реализационной и не имеет реального аналога в наших картографах.

Большинство линтеров могут предупредить нас, если обнаруживают анемичные модели с геттерами и сеттерами.

Теги

  • Скрытие информации

Вывод

Геттеры и сеттеры - это плохо налаженная практика. Вместо того, чтобы сосредоточиться на поведении объекта (существенно), мы отчаянно пытаемся понять сущность объекта (случайно) и нарушаем их реализацию.

связи







Больше информации



Ценность прототипа заключается в образовании, которое он дает вам, а не в самом коде.

Алан Купер



Эта статья является частью серии CodeSmell.