Что привлекает в возможности иметь доступ к скрытым
компонентам класса извне? Во время собеседования вас постоянно спрашивают об
основных правилах ООП. Эти знания обязательны для прохождения хотя бы первого
тура. Инкапсуляция в их числе. Разумеется.
Когда вы, наконец, получаете работу и начинаете кодировать,
то понимаете, что многие популярные ORM-фреймворки нарушают данное правило. Не
волнуйтесь. Фреймворки умнее каких-нибудь древних принципов. Просто сядьте
поудобней и расслабьтесь.
Что не
так?
- С вашим кодом происходят странные вещи, а вы понятия не имеете, что и когда изменяет значение в private int. Как вообще оно может меняться, если не проводилась операция присваивания? Где вы установите точку останова, чтобы отладить код?
- Вы решаете, что нужно написать для такого класса модульный тест и явно установить значение. Увы. Сеттера нет, потому что ранее он никому не понадобился.
- Если существует что-то вроде аннотации @Autowired, разобраться в чем дело будет проще. Однако, некоторым инструментам она не нужна. О чем вы подумаете, если посмотрите на класс исключительно со скрытыми компонентами и без геттеров/сеттеров? Что класс используется, а приложение работает. Как? Почему?
Рефлексия - мощный подход, но используйте его более эффективно (и осторожно).
Комментариев нет:
Отправить комментарий