Einzelnen Beitrag anzeigen

hanvas

Registriert seit: 28. Okt 2010
166 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Methoden in abgeleiteten Klassen ggf. einschränken

  Alt 12. Jul 2024, 09:32
Wie wäre es denn mit Interfaces?
@hanvas: von genau diesen (vielen) Fallunterscheidungen im eigentlichen Programmcode möchte ich ja weg. Ich möchte quasi etwas mehr Programmlogik vom Anwendungscode in die Library verschieben.
Im Grunde ist die Unterscheidung zwischen meiner Lösung und der Verwendung von Interfaces reine Semantik. Sie sind äquivalent.

Zitat:
Dann müsste ich mich während des Auslesens der Metadaten aus einer Datei vor Erstellung des jeweiligen TTagItems entscheiden, welche konkrete Klasse ich da instanziieren will/muss.
So wars gedacht. Aber egal ob Interfaces oder Objekte, in jedem Fall könntest Du die Fallunterscheidung in die Methode GetAllTagItems verschieben wenn du einen zweiten Paramter als Filter einführst :

Delphi-Quellcode:
 TagList := TTagItemList.Create;
 try
   aAudioFile.GetAllTagItems(TagList, TTextIDTag);
   for var tag : TTextIDTag in TagList do
   begin
     text := tag.GetText()
     machWasMitText(text)
     tag.SetText(Text);
   end;
 finally
   TagList.Free;
 end;
das würde Dir dann auch

Zitat:
Eine Variante procedure GetAll_Text_TagItems(dest: TTagItemList); wird es natürlich auch geben
ersparen. Du hättest es dann ja schon.

cu Ha Jo
  Mit Zitat antworten Zitat