Hallo
ich hätte gerne mal ein aktuelles Feedback, ob es gewichtige Gründe gibt, die dafür/dagegen sprechen, eine Liste von Funktionen besser als lose Funktionen oder besser als Funktionen in einer Klasse zu definieren.
Also so
Delphi-Quellcode:
interface
function HandleWorkflow1: Boolean;
function HandleWorkflow2: Boolean;
function HandleWorkflow3: Boolean;
function HandleWorkflow4: Boolean;
var
Variable1..3:Integer;
implementation
....
oder so
Delphi-Quellcode:
interface
type
THandleWorkflow = Class
private
FVariable1 : Integer;
FVariable2 : Integer;
FVariable3 : Integer;
procedure GetVariable2: Integer;
procedure GetVariable3: Integer;
procedure SetVariable3(const Value: Integer);
public
property Variable1 : Integer read FVariable1 write FVariable1;
property Variable2 : Integer read GetVariable2 write FVariable2;
property Variable2 : Integer read GetVariable3 write SetVariable3;
constructor Create;
destructor Destroy; override;
function HandleWorkflow1: Boolean;
function HandleWorkflow2: Boolean;
function HandleWorkflow3: Boolean;
function HandleWorkflow4: Boolean;
end;
implementation
....
Ich habe dazu den Beitrag
https://www.delphipraxis.net/46036-lose-funktionen-klassen-kapseln.html gefunden, aber der ist von 2005 und da war
OOP noch nicht ganz so genutzt wie heute
Ich sehe folgende Nach- und Vorteile der Klasse
Nachteile der Klasse
- Aufbau ist auf den ersten Blick aufwendiger (z.B. Variablendefinition bestehen aus bis zu 4 Zeilen (FVariable, SetVariable, GetVariable, property Variable)
- Klasse muss Created und Destroyed werden
- Funktionsaufruf etwas länger, da immer auch Classname vorangestellt werden muss (HandlingWorkflow.HandleWorkflow1)
Vorteile der Klasse
+ Über [Ctrl + C] wird Funktionsblock und FVariablen automatisch angelegt (Dadurch ist etwas aufwändigere Aufbau auch kein wirklicher Nachteil)
+ Bei Verwendung von Get/Set kann schön debuggt (oder geloggt) werden, wenn sich eine Variable ändert
+ Eher formalistisch und doch schön: Durch [Ctrl + C] sind Funktionen im Code alphabetisch sortiert angelegt
+ Nach Eingabe des Classname werden automatisch alle verfügbaren Elemente angezeigt
Gibt es andere Vor-/Nachteile?
Gibt es beim späteren Handling in der EXE Vor-/Nachteile? (Resourcenverbrauch, Speed, ...)
Grüße
Gerd