Design Patterns
- describe practical solutions to common design problems that occur repeatedly in software development
- A name that identifies the pattern
- A description of the problem that the pattern addresses
- A description of the solution that includes the class structures that solve the problem
- A discussion of the consequences of using the pattern
- good illustrations of object-oriented concepts e.g. is-a and has-a relationship of problem and solution
- Reusable Patterns
- Creational: Singleton, Factory Method, Abstract Factory and Prototype
- Structural: Proxy, Adapter, Bridge, Composite, Decorator, Facade
- Behavioral: Memento, State, Chain of Responsibility, Command, Observer, Strategy, Template Method, and Iterator
- Concurrent: Single-Threaded Execution, Guarded Suspension, Balking, Read/Write Lock, Two-Phase Termination
- Architectural: Model-View-Controller, Layers
- All Patterns Indexed By Category