Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: Eine Art umgekehrte Prozedur

  Alt 31. Mär 2015, 06:47
Unter OOP-Gesichtspunkten ist dieses Design auch nicht zu empfehlen.

Falls der Fragesteller etwas mit OOP im Sinn hat, würde ich zur Schablonenmethodenmuster raten, wie von Valle hier schon empfohlen wurde.

Wenn OOP gar nicht geht, könnte man noch Prozedurvariablen und Enums ins Spiel bringen:
Delphi-Quellcode:
Type
  TFunction = Function (p : Integer) : Integer;

Var
  SpecialFunc : Array [TMachWasFlag] of TFunction;

function DoSomething (p : Integer) : Integer; begin result := p + 1 end;
function DoSomethingElse (p : Integer) : Integer; begin result := p + 10 end;

function MachWas( .. ; Flag: TMachWasFlag): Integer;
begin
   Result := 10; //Stellvertretend für viel Code

   Result := SpecialFunc(Flag);

   Result := Result * 10; //Stellvertretend für viel Code
end;

procedure InitSpecialFunc;
Begin
  SpecialFunc[mwfDoSomething] := DoSomething;
  SpecialFunc[mwfDoSomethingElse] := DoSomethingElse;
End;

... InitSpecialFunc;

  MachWas(...
"Vorteil": OCP in Ansätzen umgesetzt.

Geändert von Dejan Vu (31. Mär 2015 um 06:53 Uhr) Grund: Perversen Code hinzugefügt
  Mit Zitat antworten Zitat