![]() |
OOP: private Elemente von Untergeordneten Objekten setzen
Guten Abend,
ich programmiere noch nicht lange objektorientiert, deshalb mag diese Frage ein wenig dümmlich vorkommen. Ich habe nun einen Fall erzeugt, in welchem eine Klasse eine Liste von anderen Objekten enthält, dessen privaten Eigenschaften von der übergeordneten Klasse gesetzt werden müssen, nach außen hin aber readonly sein sollen. Hier einmal ein Beispiel:
Delphi-Quellcode:
TMy_Bunch ermittelt nun Dateiinformationen, die TMy_File nur sehr umständlich und mit viel Mehraufwand ermitteln könnte. Diese Eigenschaften der Dateien sind jedoch statisch und sollen deshalb readonly sein.
TMy_File = class(TObject)
private FFileID: Cardinal; FFileName: String; FFileSize: Cardinal; FFileStatus: Byte; public property FileID: Cardinal read FFileID; property FileName: String read FFileName; property FileSize: Cardinal read FFileSize; property FileStatus: Byte read FFileStatus; constructor Create(); end; TMy_Bunch = class(TObject) private FFiles: Array of TMy_File; FCount: Integer; function getText(): String; public property Count: Integer read FCount; property Text: String read getText; constructor Create; destructor Destroy; override; procedure Delete(Index: Integer); procedure Add(const MyFile: TMy_File); overload; procedure SetValue(FileID: Cardinal;FieldName: String;Value: String); procedure Clear; procedure Append(const collection: TMy_Bunch); end; Mein Behelfsmäßiger Ansatz war, einen Konstruktor für das Objekt zu bauen, welcher alle Werte übernommen hat. Das finde ich aber äußerst hässlich. Gibt es dazu eine elegantere Methode? mfG |
Re: OOP: private Elemente von Untergeordneten Objekten setze
In Delphi kannst du auch auf private-Member anderer Klassen zugreifen, solange sie in einer Unit sind ;)
|
Re: OOP: private Elemente von Untergeordneten Objekten setze
Ich wusste doch, dass die Frage blöd war ;)
Danke für die schnelle Aufklärung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:21 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