design pattern in software engineering is a general, reusable solution to a common problem that occurs within a given context in software design. It's a template or blueprint for how to solve a problem that can be used in many different situations. Design patterns are not finished designs that can be transformed directly into code. Instead, they are descriptions or templates for how to solve a problem in a way that can be reused in many different situations.
- Simple Factory
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Singleton
- Adaptor
- Bridge
- Composite
- Data Mapper
- Decorator
- Facade
- Flyweight
- Proxy