Inhaltsverzeichnis:
Definition - Was bedeutet Mutator?
Ein Mutator im Kontext von C # ist eine öffentlich zugängliche Methode, mit der der Wert einer privaten Membervariablen einer Klasse geändert und gesteuert wird. Der Mutator wird verwendet, um dem privaten Feld eines Typs einen neuen Wert zuzuweisen. Es bildet ein Werkzeug zum Implementieren der Kapselung, indem nur der Zugriff auf die internen Feldwerte gesteuert wird, die geändert werden müssen.
Die Verwendung eines Mutators bietet folgende Vorteile:
- Verhindert, dass der Benutzer direkt auf die privaten Daten einer Objektinstanz zugreift, und ermöglicht den Zugriff nur über öffentliche Methoden, um eine Beschädigung der Daten zu verhindern.
- Bietet Flexibilität beim Ändern der internen Darstellung der Felder eines Objekts, das den internen Status darstellt, ohne die von den Objektclients verwendete Schnittstelle zu beschädigen.
- Möglichkeit, zusätzliche Verarbeitungslogik wie die Validierung eines Wertesatzes, das Auslösen von Ereignissen usw. während der Änderung des Feldes im Mutator einzubeziehen.
- Stellt die Synchronisierung bereit, die für Multithreading-Szenarien erforderlich ist.
- Enthält eine Bestimmung zum Überschreiben des in einer Basisklasse deklarierten Mutators mit dem Code in der abgeleiteten Klasse.
Techopedia erklärt Mutator
Ein Mutator wird normalerweise mit einem Accessor geliefert, der den Wert der Mitgliedsvariablen zurückgibt. Für Datenelemente, die unveränderlich sind, sollte der Mutator nicht angegeben werden.
Beispielsweise kann StudentData eine Klasse sein, in der die Details eines Schülers wie Name, Adresse, Note usw. gespeichert sind. In der Klasse kann die öffentliche Methode SetGrade vorhanden sein. StudentData ist der Mutator zum Aktualisieren des StudentData-Objekts aus dem Code, der das Objekt verwendet.
Während ein Mutator in C ++ durch eine explizite öffentliche Methode zum Ändern eines privaten Felds implementiert wird, führt C # "properties" als neues Feature ein, das einen Mutator zum Ändern von Feldwerten sowie einen Accessor zum Abrufen des Felds implementiert. Jede Eigenschaft wird im gemeinsamen Zwischensprachencode mit zwei Methoden dargestellt, denen unter der Haube "get _" (Accessor) und "set _" (Mutator) vorangestellt sind. Sie werden intern von der Common Language Runtime (CLR) aufgerufen. Dies vereinfacht den Code und ermöglicht manchmal die Ausführung von mathematischen Operationen.
Der Mutator wird nicht oft in Objekten verwendet, bei denen das Verhalten des Objekts berücksichtigt wird und nicht, wie es sich verhält.
