2012-04-12 5 views
0

Hatte ein bisschen von einem "ist das wahre Leben Moment". Warum Namensgebung wir Mutatoren mit Get- und Set-Präfixe:Srsly, warum verwenden Sie Mutatoren?

Es wäre so einfach und verständlich nur tun

MyMember (MyMember Mitglied)

als setMyMember und getMyMember

Gibt es einen historischen Warum hat Java diesen Stil?

+2

Ihre „for-Instanz“ verloren mich ... Ich bin nicht sicher, was Sie mit 'MyMember (MyMember Mitglied)' zu tun beabsichtigen. – Makoto

+0

Können Sie vielleicht ein Beispiel mit tatsächlichem Code geben? –

+0

@Makato Ich glaube, er bezieht sich als # Accessor C http://msdn.microsoft.com/en-us/library/aa287786%28v=vs.71%29.aspx –

Antwort

7

Die * get und set * Stil der Namensgebung in der Java Beans-Spezifikation angegeben ist, und einige Bibliotheken diese Art Reflexion erwarten mit verwendet werden. Zum Beispiel kann Jackson Mapper ein Java-Objekt mit den Get/Settern zu JSON ohne zusätzliche Anmerkungen serialisieren; Wenn Sie einen anderen Benennungsstil verwenden, müssen Sie ihm mitteilen, wo sich Ihre Eigenschaften befinden.

Beachten Sie, dass einige andere Programmiersprachen verschiedene Stile verwenden. Perl-Bibliotheken verwenden zum Beispiel oft einen ->someProperty() Getter und ->someProperty($newValue) Setter.

+0

Ein weiteres Beispiel ist die Sprache Objective-C (wie iPhone-Entwicklung) verwendet '[Object propertyName]' als Getter und '[Object setPropertyName: value]' als Setter - also sind die Standards für jede Sprache unterschiedlich. – wattostudios

+0

Es ist nicht nur "einige Bibliotheken". Die JavaBeans-Konventionen werden von zahlreichen Frameworks ... und JEE-Technologien wie JSP/JSTL benötigt. –