Оглавление:
Определение - Что означает Мутатор?
Мутатор в контексте C # - это метод с открытым уровнем доступности, используемый для изменения и контроля значения закрытой переменной-члена класса. Мутатор используется для присвоения нового значения закрытому полю типа. Он формирует инструмент для реализации инкапсуляции, контролируя только доступ к внутренним значениям полей, которые должны быть изменены.
Преимущества использования мутатора включают в себя:
- Запрещает пользователю прямой доступ к частным данным экземпляра объекта и разрешает доступ только через общедоступные методы для предотвращения повреждения данных.
- Обеспечивает гибкость в изменении внутреннего представления полей объекта, представляющего внутреннее состояние, без нарушения интерфейса, используемого клиентами объекта.
- Возможность включить дополнительную логику обработки, такую как проверка набора значений, запуск событий и т. Д. Во время модификации поля в мутаторе.
- Обеспечивает синхронизацию, необходимую для многопоточных сценариев.
- Включает в себя условие переопределения мутатора, объявленного в базовом классе, с помощью кода в производном классе.
Техопедия объясняет Мутатор
Мутатор обычно снабжен средством доступа, которое возвращает значение переменной-члена. Для элементов данных, которые являются неизменяемыми, мутатор не должен предоставляться.
Например, StudentData может быть классом, в котором хранятся сведения об ученике, такие как имя, адрес, оценка и т. Д. В классе может быть открытый метод SetGrade. StudentData является мутатором для обновления объекта StudentData из кода, который использует объект.
В то время как мутатор реализован в C ++ явным открытым методом для изменения частного поля, C # представляет «свойства» как новую функцию, которая реализует мутатор для изменения значений поля, а также средство доступа для извлечения поля. Каждое свойство представлено в общем коде промежуточного языка с парой методов с префиксом «get _» (accessor) и «set _» (mutator) под капотом. Они вызываются изнутри общеязыковой средой исполнения (CLR). Это упрощает код и иногда позволяет выполнять математические операции.
Мутатор не часто используется в объектах, где рассматривается поведение объекта, а не его поведение.
