Accessor

Eine Zugriffsfunktion, auch Zugriffsmethode oder Akzessor, ist in der objektorientierten Programmierung eine spezielle Methode, die eine einzelne Eigenschaft eines Objekts abfragt oder ändert. Sie sind Teil der öffentlichen Schnittstelle eines Objekts und verbergen Implementierungsdetails dieses Objekts. Dadurch kann die Implementierung eines Objekts geändert werden, ohne seine öffentliche Schnittstelle zu ändern.

Inhaltsverzeichnis

Abfragemethoden (Getter)

Eine Zugriffsmethode, die eine Eigenschaft eines Objekts abfragt, heißt auch Abfragemethode oder Getter (von englisch to get – etwas holen). Die Eigenschaft kann entweder direkt aus einem Feld (einer Instanzvariablen) des Objekts entnommen oder im Moment des Aufrufs berechnet werden. Für den Aufrufer ist das nicht erkennbar, dadurch wird die Kapselung sichergestellt.

In einigen Programmiersprachen ist es üblich, die Namen aller Abfragemethoden mit get beginnen zu lassen. So könnte z. B. eine Methode, die den Namen einer Person abfragt, getName heißen. In anderen Programmiersprachen ist dies unüblich und die Methode hieße einfach name.

Änderungsmethoden (Setter)

Eine Zugriffsmethode, die eine Eigenschaft eines Objekts ändert, heißt auch Änderungsmethode oder Setter (von englisch to set - etwas einstellen). Ein Vorteil der Änderungsmethode besteht darin, dass sie vor der Änderung den Wert auf Gültigkeit prüfen kann. So könnte beispielsweise in einem Objekt, das eine Person darstellt, die Funktion zum Setzen des Namens sicherstellen, dass als Name kein leerer Text übergeben wird. Falls ein ungültiger Wert übergeben wird, besteht eine mögliche Reaktion im Auslösen einer Ausnahmeroutine, wodurch der normale Programmablauf unterbrochen und ein Fehler signalisiert wird.

Ein weiterer Vorteil der Änderungsmethode besteht darin, dass sie eventuelle Beobachter (im Sinne des gleichnamigen Entwurfsmusters) über die Änderung des Objektzustands informieren kann. Dies wird beispielsweise in Model View Controller-Architekturen benutzt, um eine Sicht (View, z. B. ein Bildschirmformular) zu aktualisieren, wenn der Inhalt des zugrundeliegenden Modells (Model, z. B. ein Datensatz in einer Datenbanktabelle) geändert wurde.

In einigen Programmiersprachen ist es üblich, die Namen aller Änderungsmethoden mit set beginnen zu lassen. So könnte z. B. eine Methode, die den Namen einer Person ändert, setName heißen. In anderen Programmiersprachen ist dieser Präfix unüblich und die Methode hieße einfach name.

Java Beans

Java Beans, die Komponenten der Programmiersprache Java, erkennen Zugriffsfunktionen zur Laufzeit per Reflection anhand ihrer Präfixe „get“ und „set“. Die eigens dafür bereitgestellte Klasse „java.beans.Introspector“ leitet daraus dann automatisch den Namen der abgefragten oder geänderten Eigenschaft ab, also beispielsweise „saldo“ aus „getSaldo“ oder „geburtstag“ aus „setGeburtstag“.[1]

Kritik

Martin Fowler weist in seiner Beschreibung des Antimusters Anämisches Objektmodell darauf hin, dass Objektmodelle, deren Objekte praktisch nur aus Zugriffsfunktionen bestehen und kein darüber hinausgehendes Verhalten anbieten, keine Vorteile gegenüber klassischen Datenmodellen haben. Solche Objektmodelle sind daher nicht unbedingt sinnvoll.[2]

Einzelnachweise

  1. Graham Hamilton (Hrsg.): Java Beans API specification. Sun Microsystems, Inc., 8. August 1997, S. 54 (online ; Version 1.01). 
  2. Martin Fowler: AnemicDomainModel. In: MF Bliki. 25. November 2003. Abgerufen am 25. März 2009. (englisch)

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • accessor — Sc. form of accessory, B …   Useful english dictionary

  • accessor — noun Someone or something that accesses. In object oriented programming, the accessor function is not usually expected to change any data in the object …   Wiktionary

  • Mutator method — In computer science, a mutator method is a method used to control changes to a variable. The mutator method, sometimes called a setter , is most often used in object oriented programming, in keeping with the principle of encapsulation. According… …   Wikipedia

  • Objective-C — Paradigm(s) reflective, object oriented Appeared in 1983 Designed by Tom Love Brad Cox Developer Apple Inc. Typing discipline …   Wikipedia

  • Method (computer programming) — In object oriented programming, a method is a subroutine (or procedure or function) associated with a class. Methods define the behavior to be exhibited by instances of the associated class at program run time. Methods have the special property… …   Wikipedia

  • Perl 6 — Infobox programming language name = Perl paradigm = Multi paradigm year = 2000 designer = Larry Wall latest release version = pre release latest release date = typing = dynamic, static influenced by = Perl 5, Haskell, Smalltalk influenced =… …   Wikipedia

  • C Sharp syntax — The correct title of this article is C# syntax. The substitution or omission of the # sign is because of technical restrictions. Main article: C Sharp (programming language) This article describes the syntax of the C# programming language. The… …   Wikipedia

  • Comparison of programming languages (object-oriented programming) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Congregation for the Doctrine of the Faith — This article is about the Holy Office as part of the Roman Curia. For Holy Office as prayer, please see Liturgy of the Hours. This article is part of a series on the Roman Curia Dicastery …   Wikipedia

  • Method (computer science) — In object oriented programming, the term method refers to a subroutine that is exclusively associated either with a class (called class methods, static methods, or factory methods) or with an object (called instance methods). Like a procedure in… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”