Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Abstract oder überhaupt nicht?

  Alt 9. Aug 2006, 17:44
Zitat:
Aber abstrakte Klassen sind doch im "normalen" Sprachumfang (vor Delphi 8 ) gar nicht möglich
was ist jetzt falsch daran:

Delphi-Quellcode:
type
  TSomething = class abstract (TObject)
  private
    FElement: TSomethingElse
    
    function DoSomeThingGeneric;
    function YouImplementThatPlease; virtual; abstract;
  public
    constructor Create(genericparam: TType); virtual; abstract;
  end;
das ist eine astreine abstrakte klasse(ist natürlcih D2006, eventuell gibts das zuvor noch gar nicht). DoSomeThingGeneric ist bereits implementiert, und greift vielleicht auf FElement zu. Damit kann ich bestimmte Sachen bereits in dieser Basisiklasse implementieren. Die Folgeklassen sollten dann eben YouImplementThatPlease überschrieben.
Damit kann man auch, wenn man nur weiss, dass ein Objekt von TSomeThing abstammt, YouImplementThatPlease aufrufen (auf die Gefahr hin, dass man einen abstract error erntet).

So etwas ist nicht nur in Komponenten sinnvoll, sondern überall, wo man auf sachen zugreifen willl, von denen man zur Compiletime nicht genau weiss, wie sie später aussehen.
(Ich verwende so etwas im übrigen gerade)
@Der_Unwissende: Ja, PlugIns, das ist hier wohl das Stichwort.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat