Ad-hoc adapter pattern
This version can wrap/decorate backing member with an arbitrary interface even if object does not implement it as long as all members required by that interface exist.
This version can wrap/decorate backing member with an arbitrary interface even if object does not implement it as long as all members required by that interface exist.