goals: uniform processing
When classes have similar inheritance and update signatures, they can be handled generically by managing code decoupled from their specifics.
void save ( State*);
void load ( State*);
void sync ( UI*);
Reader approves, as the strategy becomes one of the system conventions-- even unfamiliar code looks familiar.
This is a meta-pattern, whose power flows from the use of common sub-patterns like context, declare sync apply, and group plugin.
nedwaves.com 2017