Klasse, die auf innere Klassen-Privates zugreift?

8
%Vor%

Was ist der Zweck der Verwendung von set und get Methoden, wenn die äußere Klasse auf private Mitglieder der inneren Klasse zugreifen kann? Was ist der Zweck, innere Klassen privat zu machen? Paketzugang?

    
ShrimpCrackers 09.05.2010, 05:13
quelle

3 Antworten

8

Private Inner-Klassen werden geschrieben, wenn Sie nicht möchten, dass die Klasse externen Klassen innerhalb oder außerhalb des Pakets ausgesetzt wird. Sie werden nur innerhalb der äußeren Level-Klasse verwendet.

Die Getter und Setter sind im Allgemeinen in einer privaten Klasse nicht sinnvoll, da Sie sowieso auf die Instanzvariablen zugreifen können.

    
Snehal 09.05.2010, 05:34
quelle
4

Sie konnten triviale Getter und Setter überspringen, aber diese Methoden sind oft nicht trivial (ein häufiger Fall ist das Muster "Lazy Load").

Bearbeitet, um hinzuzufügen: Lazy Load ist, wenn Sie nur ein Mitglied instanziieren, wenn die Daten angefordert werden. Es wird verwendet, wenn die Daten nicht immer benötigt werden und teuer sind.

%Vor%     
egrunin 09.05.2010 05:23
quelle
1

Zunächst würde ich sagen, dass man innere public / protected / internal -Klassen genauso behandelt, wie man eine andere "äußere" Klasse behandelt. Bedeutung, verwenden Sie die gleichen Design-Prinzipien.

Wie für innere Klassen, wenn ich innere private -Klassen verwende, enden sie normalerweise nur als ein Haufen von Bytes ... was bedeutet, dass sie keine eigentliche Verarbeitung machen. Sie dienen nur dazu, das Schreiben von Code für die äußere Klasse einfacher zu machen.

Ich sage dir nicht, dass du schlechten Code schreiben sollst, aber du kannst in deinem Design mit inneren privaten Klassen viel laxer sein. Als allgemeine Regel sollten sie einfach und leicht sein ... gehen Sie nicht mit OO über innere Klassen über Bord. Außerdem, wenn Sie am Ende etwas in der inneren Klasse ändern müssen, müssen Sie nur die Referenzen in der äußeren Klasse aktualisieren ... welche TBH überhaupt keine große Sache ist.

    
Polaris878 09.05.2010 05:37
quelle

Tags und Links