Proxy classes are used to manage parts of the
application's data model.
Proxy might simply manage a reference to a local data object,
in which case interacting with it might involve setting and
getting of its data in synchronous fashion.
Proxy classes are also used to encapsulate the application's
interaction with remote services to save or retrieve data, in which case,
we adopt an asyncronous idiom; setting data (or calling a method) on the
Proxy and listening for a
Notification to be sent
Proxy has retrieved the data from the service.