Software design patterns are reusable solutions to common problems in software development.
Creational Patterns - Provide object creation mechanisms that increase flexibility and reuse of existing code
- Singleton
- Factory
- Abstract Factory
- Builder
- Prototype
Structural patterns - Explains how to assemble objects and classes into larger structures, while keeping these structures flexible and efficient
- Adapter or Wrapper
- Composite]
- Proxy
- Fly Weight
- Facade
- Bridge
- Decorator
Behavioural patterns - takes care of effective communication and assignment of responsibilities btw objects
- Template method
- Mediator
- Chain of responsibility
- Observer
- Strategy
- Command
- State
- Visitor
- Iterator
- Interpreter
- Memento