Forwarding Wrapper Family Map
composition-first decorators for instrumentation, policy, and host adaptation
Dark SVG source uses the VMx architecture palette and keeps arrows behind masked component boxes.
Composition first
- Wrappers hold an inner VM and delegate by default.
- The inner VM remains the source of state and messages.
- Overrides stay local to the behavior being adapted.
Two contracts
- ForwardingComponentVM decorates component-shaped surfaces.
- ForwardingCompositeVM decorates child-list and Current-selection surfaces.
- Both preserve lifecycle ownership when dispose forwards.
Best fit
- Use wrappers for logging, policy, host adaptation, and compatibility seams.
- Do not copy VM internals just to intercept one property or command.
- Prefer a specialized VM only when the workflow is reusable in its own right.