[Lazarus] IUnknown and reference counting

Hans-Peter Diettrich DrDiettrich1 at aol.com
Thu Mar 21 21:40:10 CET 2013


Sven Barth schrieb:
> On 21.03.2013 21:15, Hans-Peter Diettrich wrote:
>> Sven Barth schrieb:
>>
>>>  > Interface delegation is something different from multiple
>>> inheritance. The interface implementor and the interfaced object then
>>> have nothing in common, the methods of the implementor cannot access
>>> elements of the interfaced object.
>>>
>>> But with only interfaces you inherit merely the syntactical
>>> "interface" while with delegation you can also reuse an existing
>>> implementation for that interface.
>>
>> Use an object (class instance) for the same purpose, and you don't have
>> to write additional code as well.
> 
> Interfaces are there to abstract away the implementation,

No, that's only a side-effect.

> because you'll 
> only have access to those methods that the interface defines.

You also have access only to the public methods of a class.

> This 
> allows for low coupling between components and thus for an improvement 
> of code testability and maintainability.

Decoupling is correct, interfaces can help to break cyclic unit references.

DoDi





More information about the Lazarus mailing list