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