Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi published und das Prinzip des Information Hiding (https://www.delphipraxis.net/111376-published-und-das-prinzip-des-information-hiding.html)

sunny-andy 2. Apr 2008 14:14


published und das Prinzip des Information Hiding
 
Hallo!

Wenn ich eine normale Form erstelle, werden alle darauf abgelegten Steuerelemente unter published eingetragen. Dies verstößt doch eigentlich gegen das Prinzip des Information Hiding!?
Von außen habe ich eine unüberschaubare Anzahl an möglichen Properties, Steuerelementen und Methoden, die ich ansprechen kann. Gibt es nicht die Möglichkeit, alle Steuerelemente automatisch in den private Bereich schieben zu lassen?

Gruß,
Andy

mkinzler 2. Apr 2008 15:11

Re: published und das Prinzip des Information Hiding
 
Komponenten sind nicht published, sondern managed. Du müsstest dich dann selber um die Erzeugung und Freigabe kümmern, wenn du diese privat machst.
Aber ein Formular ist auch keine "normale" Klasse.

busybyte 3. Apr 2008 01:46

Re: published und das Prinzip des Information Hiding
 
Die nächste Stufe wäre wohl protected.
Aus Gründen der Funktionalität bietet es sich an
die meisten Objekte,Klassen usw. für andere Units zur Verfügung zu stellen,nur so
ist objektorientiertes Programmieren sinvoll.
Da die Objekte der Klasse zugeordnet werden sollten, ist auch eine
Verwechslung kaum zu erwarten.
Es kommt allerdings schonmal in
Delphi-Quellcode:
With MyObject do
begin
...
end
Konstrukten vor,ist aber relativ selten und einfach durch voranstellen des Objektes vor die Methode zu beheben.
Wenn Du mit mehreren Units bzw. Forms arbeitest,wirst Du bald merken warum private/protected Deklarationen
eher hinderlich aber zum Glück auch möglich sind.

SirThornberry 3. Apr 2008 07:03

Re: published und das Prinzip des Information Hiding
 
ich muss sunny-andy recht geben. Es ist nicht wirklich schön das von außen direkt auf edits zugegriffen werden kann etc.
Allerdings ist es eben managed und wenn man ein Formular objectorientiert verwendet so stellt man es selten direkt zu Verfügung. Meistens wird das Formular dann innerhalb einer anderen Klasse erstellt und liegt dort im private oder protected. Dadurch ist es dann auch gegen Zugriffe von außen geschützt.

QuickAndDirty 3. Apr 2008 07:29

Re: published und das Prinzip des Information Hiding
 
Ja die Unsitte der Var Formular:TForm1 deklaration kann man eigentlich nur im Hauptfenster gebrauchen, an sonnsten sollten
die anderen Formulare immer in Variablen die einem Object zugeordnet sind also Attributen erzeugt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 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