Hi,
Also ich befinde mich gerade in folgender Situation: Ich habe eine Basisklasse und 3-4 davon abgeleitete Klassen. Sagen wir mal das ganze sieht so aus (aufs wesentliche reduziert):
Delphi-Quellcode:
TBase = class
end;
TClass1 = class(TBase)
procedure DoSomething;
end;
TClass2 = class(TBase)
procedure DoSomething;
end;
TClass3 = class(TBase)
procedure DoSomething;
end;
// etc
Nun würde man es intelligenterweise so machen:
Delphi-Quellcode:
TBase = class
procedure DoSomething;
end;
Jedoch gibt es das Problem, dass sich die Procedure DoSomething in jeder abgeleiteten Klasse in ungefähr genau einer Code-Zeile unterscheidet, wodurch ich sie nicht einfach von TBase erben kann. Außerdem ist diese Zeile auch nicht am Anfang oder am Ende der Procedure, so dass ich nicht mit inherited arbeiten kann, sondern die ganze Procedure bis auf eine Zeile genau abschreiben muss... nun hatte ich eine Idee:
Delphi-Quellcode:
TBase = class
protected
procedure Zeile; virtual;
public
procedure DoSomething;
end;
TClass1 = class(TBase)
protected
procedure Zeile; override;
end;
procedure TBase.Zeile;
begin
end;
procedure TBase.DoSomething;
begin
// Code
Zeile;
// Code;
end;
procedure TClass1.Zeile;
begin
// Zeile in TClass1
end;
Nur bin ich mir nicht so sicher, ob diese Lösung so schön ist...
Was sagt ihr dazu? Gibt es bessere Methoden?
Gruß
Neutral General