[Decorator pattern|
[Component|| operation()]
[Client] depends --> [Component]
[Decorator|- next: Component]
[Decorator] decorates -- [ConcreteComponent]
[Component] <:- [Decorator]
[Component] <:- [ConcreteComponent]
[Foo] depends -> [Bar]
[Bar] -> [Baz]
[Bar] -> [Boo]
[Bar] -> [Moo]
]
[Strategy pattern|
[client] o- [Strategy| operation()]
[Strategy] <:-- [StrategyA]
[Strategy] <:-- [StrategyB]
]