Hallo zusammen,
mir fällt beim Testen Folgendes in den FMX Sourcen auf:
Delphi-Quellcode:
IBrushObject = interface(IFreeNotificationBehavior)
['{BB870DB6-0228-4165-9906-CF75BFF8C7CA}']
function GetBrush: TBrush; // A.) Hier wird ein Getter vorausgesetzt
property Brush: TBrush read GetBrush;
end;
TBrushObject = class(TFmxObject, IBrushObject)
private
FBrush: TBrush;
{ IBrushObject }
function GetBrush: TBrush; // B.) Der Getter wird hier definiert, Result := FBrush;
protected
procedure SetName(const NewName: TComponentName); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Brush: TBrush read FBrush write FBrush; // C.) Hier wird direkt auf das Feld zugegriffen
end;
Ich würde im Design oben IMMER den entsprechenden Getter verwenden, auch bei C.).
Jetzt frage ich mich ob die EMBA C.) Variante evtl. irgendeinen einen Vorteil hat ?
(Ist vielleicht schneller, weil inline und der Getter entfällt).
Ist C.) überhaupt ein sauberes Klassendesign ?
Meiner Meinung nach eher nicht, weil es zwei Arten des Zugriffs gibt.
Rollo