![]() |
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 |
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. |
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:
Konstrukten vor,ist aber relativ selten und einfach durch voranstellen des Objektes vor die Methode zu beheben.
With MyObject do
begin ... end 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. |
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. |
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 21:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz