Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zwei Klassen in einer Unit. (https://www.delphipraxis.net/137427-zwei-klassen-einer-unit.html)

Christian18 20. Jul 2009 21:00


Zwei Klassen in einer Unit.
 
Hallo,

ich bin gerade dabei in großen Projekten so ein bisschen Ordnung zu machen. Alles was ähnlich ist, wollte ich in einer Unit ablegen. Mit ist jetzt aufgefallen, wenn ich zwei Klassen in einer Unit habe, dass dann dieses private nicht mehr funktioniert. Soll das so? Ich meine warum gibt es solche Konzepte, wenn die irgendwie nicht so wirklich funktionieren.

Hier mein Beispiel:

Ich habe eine "Mutterklasse" eine andere ebt von dieser. Attribute die ich bei der Mutterklasse als private deklariert habe, können auch über die geerbte Klasse aufgerufen werden. Das verwundert mich nun so ein bisschen. Vieleicht soll das auch so und hab die Konzepte der OOP falsch verstanden.

LG Chris

jfheins 20. Jul 2009 21:02

Re: Zwei Klassen in einer Unit.
 
Auf private Attribute kann innerhalb einer Unit beliebig zugegriffen werden.

Verwende strict private (ab D2005 oder so) oder lagere jede Klasse in eine eigene Unit aus ;)

P.S.: Die VCL macht davon übrigens sehr intensiv Gebrauch, wahrscheinlich hat man das mal eingeführt um die Arbeit zu erleichtern und es später (evtl. aus Kompatibilitätsgründen) so gelassen ...

rollstuhlfahrer 20. Jul 2009 21:53

Re: Zwei Klassen in einer Unit.
 
oder wie wäre es mit protected?

Bernhard

Luckie 20. Jul 2009 21:58

Re: Zwei Klassen in einer Unit.
 
Ich würde keine zwei Klassen in eine Unit packen. Eine Klasse, eine Unit, ein aussagekräftiger Name, dann weißt du auch wo was ist.

rollstuhlfahrer 20. Jul 2009 22:08

Re: Zwei Klassen in einer Unit.
 
du könntest auch, wennn es hilft, die Units in Ordnern zusammenfassen. Delphi ist es ja egal, wo die Units sind.

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz