I defined a new IDataContext as an interface for contexts that provide
the functionality of IListenable, IPersistable, IRestricted, and
ICheckpointable. DataContext and MultiContext are example concrete
implementations.
As a side effect of the change, we have one single adapter from
IContext to IDataContext (and, thus, implicitly to all of its component
interfaces). This drastically reduces the number of possible paths
in the adaptation network.
I defined a new IDataContext as an interface for contexts that provide the functionality of IListenable, IPersistable, IRestricted, and ICheckpointable. DataContext and MultiContext are example concrete implementations.
As a side effect of the change, we have one single adapter from IContext to IDataContext (and, thus, implicitly to all of its component interfaces). This drastically reduces the number of possible paths in the adaptation network.