Применение принципов ООП
Инкапсуляция
Класс должен работать как черный ящик: принимать команды и запросы, отдавать данные.
Вся работа с данными и логика этой работы содержатся внутри класса и не должны быть подвержены изменениям извне, должны быть скрыты.
- Если переменная должна быть доступна для чтения, следует использовать модификатор
readonlyдля исключения ее изменения извне. - Если переменная должна быть доступна для изменения, она должна быть оформлена как свойство с валидацией сеттера, чтобы работа класса не могла быть сломана передачей пограничных значений.
- В сеттере может быть не только валидатор значения переменной, но и события и т.п.
- Публичный метод для изменения переменной должен включать в себя всю логику работы в рамках ответственности данного класса.
- Если другой объект не должен иметь доступа к публичным методам данного объекта, а только к некоторым его полям или свойствам, вероятно, будет удобнее оформить такое взаимодействие через события при изменении значения свойства.
#программирование