A component that encapsulates the mode switching logic for a mode-dependent component.
A mode-dependent component is a component whose behaviour depends on operational mode.
More specifically, a mode-dependent component is a component that must implement one or more
strategies where, for each strategy, several implementations are possible, one
for each operational mode. If is is the implementation for strategy s, then:
is = fs(m) where m is the operational mode and fs(.) is a
function that associates an implementation to each operational mode. A mode manager is a
component that, for a specific component, implements the logic to determine the operational
mode as a function of current operational conditions and that implements the fs(.)
functions for all the strategies used by the mode-dependent component.
Mode Management design pattern.