Archetype pattern

The separation is accomplished through the creation of two abstract classes: a decorator (for logic), and a delegate (for implementation).

The Factory handles the mapping of decorator and delegate classes and returns the pair associated with a parameter or parameters passed.

The interface is the contract between a decorator, a delegate, and the calling class, creating an Inversion of Responsibility.

Delegate The descendants of the delegate flow class handle the implementation for call a sub-system, storage, or communication.

Different children can use completely different sub-systems storage, or communications than each other.