Зміст:
Визначення - Що означає мутатор?
Мутатор, у контексті C #, - це метод із загальнодоступним рівнем доступності, який використовується для зміни та контролю значення змінної приватного члена класу. Мутатор використовується для призначення нового значення приватному полі типу. Він є інструментом для здійснення інкапсуляції, лише контролюючи доступ до внутрішніх значень поля, які повинні бути змінені.
До переваг використання мутатора належать:
- Забороняє користувачеві отримувати прямий доступ до приватних даних об'єкта і дозволяє отримати доступ лише через загальнодоступні методи для запобігання пошкодження даних.
- Забезпечує гнучкість у зміні внутрішнього подання полів об’єкта, що представляє внутрішній стан, не порушуючи інтерфейс, що використовується клієнтами об'єкта.
- Можливість включати додаткову логіку обробки, наприклад перевірку набору значень, ініціювання подій тощо під час модифікації поля в мутаторі.
- Забезпечує синхронізацію, необхідну для багатопотокових сценаріїв.
- Включає положення про заміщення мутатора, оголошеного в базовому класі, з кодом у похідному класі.
Техопедія пояснює Мутатора
Мутатор зазвичай надається аксесуаром, який повертає значення змінної члена. Для членів даних, які незмінні, мутатор не повинен надаватися.
Наприклад, StudentData може бути класом, який зберігає реквізити студента, такі як ім'я, адреса, оцінка тощо. У класі може бути загальнодоступний метод SetGrade. StudentData є мутатором для оновлення об'єкта StudentData з коду, який використовує об'єкт.
Хоча мутатор реалізується в C ++ явним відкритим методом для зміни приватного поля, C # вводить "властивості" як нову функцію, яка реалізує мутатор для зміни значень поля, а також як аксесуар для отримання поля. Кожна властивість представлена в загальному проміжному мовному коді з парою методів з префіксом "get _" (accessor) та "set _" (mutator) під кришкою. Вони викликаються внутрішньо загальною мовою виконання (CLR). Це спрощує код і іноді дозволяє виконувати математичні операції.
Мутатор часто не використовується в об'єктах, де поведінка об'єкта розглядається, а не як він виконує.
