Wer nutzt wie und warum Freundschafts-Beziehungen? Thema ist als GELÖST markiert

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von ralf.wenzel (Top Expert / 3570 / 167 / 243 ) »
Frage steht im Betreff — eigentlich durchbrechen Freundschaften zwischen Klassen die Kapselungsidee. Wo ist es sinnvoll, die Kapselung gezielt zu durchbrechen (abgesehen von Testklassen)?


Ralf


Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von black_adept (Top Expert / 3510 / 70 / 691 ) »
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von a-dead-trousers (Top Expert / 3646 / 126 / 948 ) »
Ich nutze es oft, wenn ich Klassen/Objekte zwar "untereinander" kommunizieren lassen möchte, aber der Programmierer der sie dann im Endeffekt nutzt, diese Kommunikation nicht beeinflussen soll/darf.
Ein weiteres Anwendungsgebiet wären IMHO Factory-Klassen, die Objekte instanzieren, die NICHT Public instanziert werden sollen.
Wobei ich natürlich stets versuche, die Freundesbeziehungen auf ein minimum zu reduzieren. Manchmal, wenn ich genug Zeit bekomme zu Überlegen, finde ich auch bessere Wege um die oben gennanten Fallbeispiele zu umgehen. Meist fehlt dann in meinem OO-Modell z.B. nur ein Layer der die Kommunikation übernimmt oder eine vererbbare INITIALIZE-Methode.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von ralf.wenzel (Top Expert / 3570 / 167 / 243 ) »
a-dead-trousers hat geschrieben:Ein weiteres Anwendungsgebiet wären IMHO Factory-Klassen, die Objekte instanzieren, die NICHT Public instanziert werden sollen.
Ich kenne Factorys nur so, dass sie Unterklassen instanziieren. Wenn das natürlich nicht der Fall ist, dann kann man das so lösen. Es scheint mir so, dass Freundschaftsbeziehungen immer DANN sinnvoll sind, wenn man nicht eine einzelne Klasse, sondern eine Mehrzahl von Klassen von externem Zugriff sperren will, sie untereinander aber sehr wohl kommunizieren sollen.

Mich wundert nur, wie selten man das braucht und dachte schon, ich hätte einen Denkfehler ;)


Ralf

Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von black_adept (Top Expert / 3510 / 70 / 691 ) »
ralf.wenzel hat geschrieben:Ich kenne Factorys nur so, dass sie Unterklassen instanziieren.
Damit Unterklassen von einer Oberklasse instanziiert werden können, müssen die Unterklassen als CREATE PUBLIC definiert werden, was den Nachteil hat, dass du dann nicht mehr die Verwendung einer Factorymethode erzwingen kannst. Ausweg ist die Freundschaft.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de


Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Vergleichbare Themen

M:n Beziehungen DB-Tabellen
von L0w-RiDer » 05.04.2021 14:42