SOLID principles are object-oriented design concepts relevant to software development. SOLID is an acronym for five other class-design principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle.
| No | Design Pattern | Source Code | Material | Status | Interview Q&A |
|---|---|---|---|---|---|
| 1. | Single Responsibility Principle | practice | resource | ✅ | ✅ |
| 2. | Open-Closed Principle | practice | resource | ✅ | ✅ |
| 3. | Liskov Substitution Principle | practice | resource | ✅ | ✅ |
| 4. | Interface Segregation Principle | practice | resource | ✅ | ✅ |
| 5. | Dependency Inversion Principle | practice | resource | ✅ | ✅ |
In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern isn't a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations.
This resource based on Dive into Design Patterns
In this section you will find real life implementations of each design patter.
| No | Design Pattern | Source Code | Practice | Material | Status | Interview |
|---|---|---|---|---|---|---|
| 1. | Factory Method | Creational | practice | resource | ✅ | ✅ |
| 2. | Abstract Factory | Creational | practice | resource | ✅ | ✅ |
| 3. | Builder | Creational | practice | resource | ✅ | ✅ |
| 4. | Prototype | Creational | practice | resource | ✅ | ✅ |
| 5. | Singleton | Creational | practice | resource | ⌛ | ⌛ |
| No | Design Pattern | Source Code | Practice | Material | Status | Interview |
|---|---|---|---|---|---|---|
| 6. | Adapter | Structural | practice | resource | ⌛ | ⌛ |
| 7. | Bridge | Structural | practice | resource | ⌛ | ⌛ |
| 8. | Composite | Structural | practice | resource | ⌛ | ⌛ |
| 9. | Decorator | Structural | practice | resource | ⌛ | ⌛ |
| 10. | Facade | Structural | practice | resource | ⌛ | ⌛ |
| 11. | Flyweight | Structural | practice | resource | ⌛ | ⌛ |
| 12. | Proxy | Structural | practice | resource | ⌛ | ⌛ |
| No | Design Pattern | Source Code | Practice | Material | Status | Interview |
|---|---|---|---|---|---|---|
| 13. | Chain of Responsibility |
Behavioral | practice | resource | ⌛ | ⌛ |
| 14. | Command | Behavioral | practice | resource | ⌛ | ⌛ |
| 15. | Iterator | Behavioral | practice | resource | ⌛ | ⌛ |
| 16. | Mediator | Behavioral | practice | resource | ⌛ | ⌛ |
| 17. | Memento | Behavioral | practice | resource | ⌛ | ⌛ |
| 18. | Observer | Behavioral | practice | resource | ⌛ | ⌛ |
| 19. | State | Behavioral | practice | resource | ⌛ | ⌛ |
| 20. | Strategy | Behavioral | practice | resource | ⌛ | ⌛ |
| 21. | Template Method |
Behavioral | practice | resource | ⌛ | ⌛ |
| 22. | Visitor | Behavioral | practice | resource | ⌛ | ⌛ |