- Creator
- Concrete Creator
- Product
- Concrete Product
- Abstract Factory Interface
- Concrete Factory
- Abstract Product Interface
- Concrete Product
- Client
- Singleton Class
- Static Member Variable
- Static Method (getInstance)
- Delete Copy Constructor and Assignment Operator
- Prototype Interface
- Concrete Prototypes
- Client
- Director
- Builder
- Concrete Builder
- Product
- Target Interface
- Adaptee
- Adapter
- Client
- Abstraction
- Refined Abstraction
- Implementation
- Concrete Implementation
- Component
- Leaf
- Composite
- Client
- Component Interface
- Concrete Component
- Decorator
- Concrete Decorator
- Subsystem Components
- Facade Class
- Client
- Flyweight Interface
- Concrete Flyweight
- Flyweight Factory
- Subject
- Real Object
- Proxy
- Handler Interface
- Concrete Handler
- Client
- Command Interface
- Concrete Command
- Receiver
- Invoker
- AbstractExpression
- TerminalExpression
- NonterminalExpression
- Context
- Client
- Interpreter
- Mediator
- Colleague
- Concrete Mediator
- Concrete Colleague
- Originator
- Memento
- Caretaker
- Subject
- Observer
- Concrete Subject
- Concrete Observer
- Context
- State
- ConcreteState
- Context
- Strategy Interface
- Concrete Strategy
- Template Method
- Abstract Method
- Concrete Class
- Template or Base Class
- Client
- Visitor Interface
- Concrete Visitor
- Element Interface
- Concrete Element
- Object Structure