Let’s say I have to use an unstable assembly that I cannot refractor. My code is supposed to be the client of a CustomerCollection
that is (surprise) a collection of Customer
instances. Each customer instance has further properties like a collection of Order
instances. I hope you get the idea.
Since the assembly behaves not that well my approach is to wrap each class in a façade where I can deal with exceptions and workarounds an all that stuff. (To make things more complicated I like to design the wrapper to be usable with WPF regarding data binding.)
So my question is about the design of the wrapper, e.g. CustomerCollectionFacade
. How to expose the object tree (customers, orders, properties of orders)? Is the CustomerWrapper
collection stored in a field or do I create CustomerWrapper
instances on the fly (in the get accessor of a property maybe)?
Any ideas welcome. Thanks!
Edit:
Unfortunately the way proposed by krosenvold is not an option in my case. Since the object tree’s behavior is very interactive (editing from multiple views, events fired if properties change) I will not opt to abandon the ‘source object’. These changes are supposed to propagate to the source. Thanks anyway.