2016-06-06 21 views
2

Ist es wirklich notwendig, oder eine gute Praxis im Allgemeinen Getter und Setter auf alle die privaten Variablen einer Klasse hinzufügen?Getter und Setter für alle privaten Variablen einer Klasse?

Ich frage nicht nach den schreibgeschützten Variablen. Was ich wirklich frage, ist der allgemeine Fall, wo wir die meiste Zeit einfach Getter und Setter hinzufügen, falls sie benötigt werden und nicht wirklich wissen, ob sie benutzt werden oder nicht.

+2

Natürlich nicht. In den meisten Fällen sollten die meisten Variablen einer Klasse private Felder sein. Darüber hinaus sollten Eigenschaften in vielen Fällen schreibgeschützt sein und möglicherweise keine Setter benötigen. Im Falle der Variablen, die öffentlich zugänglich gemacht werden sollten, ist es jedoch aus vielen Gründen manchmal notwendig, aber fast immer eine gute Praxis, Getter und Setter anstelle von Feldern zu verwenden. – phoog

+2

Mögliches Duplikat von [Warum Getter und Setter verwenden?] (Http://stackoverflow.com/questions/1568091/why-use-getters-and-setters) – phoog

+0

@phoog Thans für die Antwort. Aber ich fragte nicht wirklich nach 'öffentlichen Varibalen' vs Gettern und Setter. Ich habe meine Frage bearbeitet, falls es schwierig war, sie zu verstehen. –

Antwort

2

Es gibt verschiedene Erklärungen von verschiedenen Leuten bezüglich der Verwendung von "Gettern" und "Settern". Die reinsten OO Leute sagen, sie sind evil.

Aber eigentlich gibt es Situationen, in denen wir zumindest auf nicht direkte Weise mit ihnen gehen müssen.

Aber ich glaube, dass es keine gute Praxis ist, sie nahtlos hinzuzufügen, wie Sie vorschlagen.

+0

Schöne Erklärung. :) –

-2

Es ist nicht notwendig, Getter oder Setter für alle privaten Variablen zu schreiben. Es ist nur eine gute Übung. Aber ohne öffentliche Funktion können Sie nicht auf die privaten Daten (Variable) der Klasse zugreifen.

+0

Es ist eigentlich das Gegenteil - es ist eine schlechte Praxis, unnötige Informationen offenzulegen, da Sie wahrscheinlich unerwünschte Abhängigkeiten zu privaten Daten erzeugen werden. Das Verstecken von Informationen ist einer der Schlüsselprinzipien - was überflüssig wird, wenn Sie über Accessor-Methoden auf alle enthaltenen Daten zugreifen können. –

+0

Nein, es ist keine gute Übung. –

1

Da private Eigenschaften der interne Status der definierenden Klasse sind, müssen keine Accessoren geschrieben werden.

Die Vorteile sind:

  • schnellere Codeausführung (weniger Funktionsaufrufe),
  • höhere Lesbarkeit und Wartbarkeit (untere LOC),
  • Zugang zu privaten Eigenschaften nur für die Definition von Klasse.
+0

Ich habe Schwierigkeiten zu verstehen, was Sie sagen wollen. –

+0

Ich schreibe, dass Sie keine Accessoren für Privateigentum verwenden sollten. –

+0

Aber es gibt viele Situationen, in denen Sie Accessoren richtig erstellen müssen? –