Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

AW: Nachfahr-Klasse sieht private-Member der Vorfahrklasse?

  Alt 7. Okt 2011, 13:40
ich sehe überhaupt kein Problem in diesem Verhalten. Die Deklaration zweier Klassen im gleichen Gültigkeitsbereich (hier Interface Sektion einer Unit) bestimmt die Sichtbarkeit aller Variablen, Konstanten, OOP Konstrukte. Möchte man dies nicht so muß man die Klassen in eigene Units auslagern. Es ist aber eher so, das wenn der Programmierer sich dafür entschieden hat zwei Klassen in der gleichen Unit zu deklarieren, das diese beiden Klassen zusammengehörig sind. Man möchte explizit das in den Blackboxen, sprich Mehtoden der Objekte, Zugriff auch auf die privaten Felder der kompletten Klassenhierarchie, die man vorherig deklariert hat, möglich ist.

Es ist also nur eine Frage des Verständinisses beim Programmierer und seinen Designzielen. Vom Verständniss her sollte klar sein das diese Kapselung/Sichtbarkeiten nicht nur für OOP gilt sondern für alle Sprachfeature von PASCAL. Könnte man eine Klasse ganz privat innerhalb einer Methode/Procedure deklarieren dann wäre das die Fortsetzung des Sichtbarkeitskonzeptes wie es jetzt schon existiert. Dies Sichtbarkeitsebenen sind "Program/Library" -> "Unit" -> "Interfacesection/Implementationsection der Unit" -> "Klassen/Methoden/Procedure Deklaration" -> "Methoden/Procedure-Implementation" -> "nested Functions" -> "begin end" -> "Unterblöcke wie if then begin end; Schleifen usw."

Es ergibt sich also eine modulare Hierarchie, sowohl als Dateistruktur wie auch innerhalb dieser Quelltexte als Syntax der Programiersprache, die gerade bei PASCAL ziemlich strikt hierarisch ist und an Hand derer auch die Sichtbarkeiten und damit Kapselung definiert ist. Anders ausgedrückt: ich liebe PASCAL weil auch die "graphische" Orientierung dessen was man im Quelltext schreibt ein wichtige Funktion hat. PASCAL besteht nicht nur aus einer Syntax sondern auch aus "Formatierungs-Regeln" die uns die Struktur des gesammten Quelltextes viel besser vestehen lässt.

Mit der späteren Einführung von "strict private" hat man das als Sprachfeature umgesetzt um noch gezielter die Sichtbarkeiten, und damit Fehlervermeidung, beeinflussen zu können.

Beides halte ich für sinnvolle Instrumente.

Gruß Hagen

Geändert von negaH ( 7. Okt 2011 um 13:50 Uhr)
  Mit Zitat antworten Zitat