Thema: Delphi MustOverride?

Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#7

AW: MustOverride?

  Alt 13. Feb 2016, 22:43
Du konntest es vielleicht so machen:
Delphi-Quellcode:
type
  TBaseFunctions = class
    procedure MyMethode1; virtual; abstract;
    procedure MyMethode2; virtual; abstract;
  end;

  TBaseFunctionsMeta = class of TBaseFunctions;

  TBaseClass = class
    function GetFunctions: TBaseFunctionsMeta; virtual; abstract;
  end;

  //
  TBasicSpecificFunctions = class(TBaseFunctions)
    procedure MyMethode1; override;
    procedure MyMethode2; override;
  end;

  TBasicClass = class(TBaseClass)
    function GetFunctions: TBaseFunctionsMeta; override;
  end;

  //
  TSpecificSpecificFunctions = class(TBaseFunctions)
    procedure MyMethode1; override;
    procedure MyMethode2; override;
  end;

  TSpecificClass = class(TBasicClass)
    function GetFunctions: TBaseFunctionsMeta; override;
  end;
Du hast eine Klasse TBaseFunctions die bestimmte Funktionen realisiert, die jedes Mal neu definiert werden müssen.

Du erbst immer nur von TBaseFunctions.

Innerhalb der Hierarchie TBasicClass, TSpecificClass ... greifst du mittels GetFunctions auf diese Funktionen zu.

Aber auch hier musst du das override von GetFunctions sicherstellen, aber eben nur einmalig.

Jedoch müsstest du dafür existierenden Code umschreiben. Ob das so sinnvoll wäre. Ich würde lieber per Notepad++ und regulären Ausdrücken prüfen, ob ein override vorhanden ist.
Sebastian
  Mit Zitat antworten Zitat