Wer nutzt wie und warum Freundschafts-Beziehungen?

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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 / 3924 / 200 / 280 ) »
Frage steht im Betreff — eigentlich durchbrechen Freundschaften zwischen Klassen die Kapselungsidee. Wo ist es sinnvoll, die Kapselung gezielt zu durchbrechen (abgesehen von Testklassen)?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
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 / 4395 / 223 / 1182 ) »
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.18
Basis: 7.50

Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
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
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
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

Re: Wer nutzt wie und warum Freundschafts-Beziehungen?

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Das ist auffallend richtig.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

6
Antw.
809
Views
M:n Beziehungen DB-Tabellen
von L0w-RiDer » 05.04.2021 14:42 • Verfasst in ABAP® für Anfänger
19
Antw.
4044
Views
Unterklasse nutzt Methode der Basisklasse -> "falsche" Werte werden zurückgeliefert
von SAP_Coder » 13.03.2020 18:58 • Verfasst in ABAP Objects®

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Lukas Sanders 2 / 787
Dialog-Container mit Toolbar/Status
vor 14 Stunden von black_adept gelöst 21 / 2616

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor einer Stunde von Lukas Sanders 2 / 787
Dialog-Container mit Toolbar/Status
vor 14 Stunden von black_adept gelöst 21 / 2616

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2402
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 8986