Common design patterns in Elixir Behavioral Chain of responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template method Visitor Creational Builder Factory Factory method Prototype Singleton Structural Adapter Bridge Composite Decorator Delegation Facade Flyweight Proxy