Wenn ich die Properties bei Interfaces entwickeln sollte dann so:
Delphi-Quellcode:
type
IMyInterface = interface
function XYZ: HResult;
property Name: INameProperty;
end;
INameProperty = interface(IAbstractProperty)
function Getter: Variant; default;
function Setter(Variant); default;
end;
Dh. im IMyInterface wird keinerlei Aussage darüber getroffen wie die Property Name real zu implementieren ist. Es seht nur der Typ der Property drinnen und selbst dieser könnte abstrakt sein, sprich Variant.
Das implementieren Property Interface könnte nun separat impelemntiert werden oder auch gleich von der selben Klasse die auch IMyInterface impleentiert. Auf alle Fälle ist alles abstrakt deklariert im Interface und um Abstraktion geht ja dabei.
Es gibt aber schon andere Wege über TypeLibs, dispatchable Interfaces IDispatch und den ganzen Kram. Damit versucht man im Grunde exakt das zu machen. Dh. es gibt schon klare Standards wie man eine Property über dispid und TypeLibs in ein Interface deklariert. Das unterscheidet sich natürlich vom Delphi Property Konzept.
Gruß Hagen