Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

OOP machts mir schwer (Design von Klassen)

  Alt 28. Mai 2008, 18:03
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
Michael
  Mit Zitat antworten Zitat