Um es mal auf dein Beispiel zu beziehen:
Delphi-Quellcode:
IReadObject = Interface(IInterface)
['{26828CFB-864E-488E-914D-B4BEBD49F641}']
function getMass: Double;
property Mass: Double read getMass;
End;
IWriteObject = Interface(IInterface)
['{B9F10F92-1145-4108-8C93-386ABA334A88}']
procedure setMass(AValue: Double);
property Mass: Double write setMass;
End;
TFullObject = class(TInterfacedObject, IReadObject, IWriteObject)
private
function getMass: Double;
procedure setMass(AValue: Double);
end;
Du kannst jetzt auch noch dies machen:
Delphi-Quellcode:
IFullObject = Interface(IReadObject)
['{19FCFAF2-1BF0-45BE-AABF-0C5138F7D7ED}']
procedure setMass(AValue: Double);
property Mass: Double read getMass write setMass;
end;
TFullObject = class(TInterfacedObject, IReadObject, IWriteObject, IFullObject)
Die implementierende Klasse muss dann das Interface nur noch aufführen.
In diesem Fall wäre IWriteObject dann aber eigentlich überflüssig.