SOLID principles are a selection of 5 software design principles that are frequenctly referred in modern design patterns.
- Single Responsibility Principle
- Open Close Principle
- Liskov Substitution Principle
- Interface Segregation
- Dependency Inversion Principle
Design patterns are typical solutions to common software problems.
- Deal with the creation/construction of objects
- Explicit (constructor) vs. Implicit (DI, reflection, etc.)
- Wholesale (single statement) vs. Piecewise (step-by-step)
- Concerned with the structure (e.g., class members)
- Many patterns are wrappers that mimic the underlying class' interface
- Stress the importance of good API design
- Adapter Pattern
- Bridge Pattern
- Composite Pattern
- Decorator Pattern
- Facade Pattern
- Flyweight Pattern
- Proxy Pattern
......