Einzelnen Beitrag anzeigen

cmrudolph

Registriert seit: 14. Aug 2006
29 Beiträge
 
Delphi 7 Professional
 
#1

OOP: private Elemente von Untergeordneten Objekten setzen

  Alt 19. Okt 2008, 18:05
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_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;
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.
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
  Mit Zitat antworten Zitat