Do not expose properties with writeable fields without a chance to react on the writes.
Posted by jpluimers on 2015/11/04
From a chat with a co-worker a while ago:
So even if you expose such a property as read-only, it can still get its writeable fields overwritten.
That is a pain when those are part of the state of the underlying object.
In other words: encapsulate your state changes.
Here we solved it by making
- the type of the property immutable
- the property writeable
- react on state changes during the write
Proper encapsulation.
In this case it was a project mixing C# and Delphi, but you can easily apply the above to any language featuring classes and properties.
Another solution would have been to extend the type of the property so it can expose an event that fires during change. Much more convoluted.
–jeroen
Silver Warior said
Could you provide some code examples of right and wrong approach?
jpluimers said
One day when I’m less busy (;