- 🏠 Simple Factory
- 🏭 Factory Method Creates an instance of several derived classes
- 🔨 Abstract Factory Creates an instance of several families of classes
- 👷 Builder Separates object construction from its representation
- 🐑 Prototype A fully initialized instance to be copied or cloned
- 💫 Singleton A class of which only a single instance can exist
- 🔌 Adapter Match interfaces of different classes
- 🚡 Bridge Separates an object’s interface from its implementation
- 🌿 Composite A tree structure of simple and composite objects
- ☕ Decorator Add responsibilities to objects dynamically
- 📦 Facade A single class that represents an entire subsystem
- 🍃 Flyweight A fine-grained instance used for efficient sharing
- 🤗 Proxy An object representing another object
- 🔗 Chain of Responsibility A way of passing a request between a chain of objects
- 👮 Command Encapsulate a command request as an object
- 💁 Interpreter A way to include language elements in a program
- 👯 Iterator Sequentially access the elements of a collection
- 👽 Mediator Defines simplified communication between classes
- 💾 Memento Capture and restore an object's internal state
- 😎 Observer A way of notifying change to a number of classes
- 🏃 Visitor Defines a new operation to a class without change
- 💡 Strategy Encapsulates an algorithm inside a class
- 💢 State Alter an object's behavior when its state changes
- 📒 Template Method Defer the exact steps of an algorithm to a subclass