Skip to content

SOLID Principles & Design Patterns – Video Guide

A curated list of SOLID principles and common design patterns with short explanations and video resources.


1. What is SOLID Principle

SOLID is a set of five object-oriented design principles that help developers write maintainable, scalable, and loosely coupled software.

Video: https://youtu.be/iVg_IHTw6tU?si=XB-mib0QJTCBSl2n


2. What are Design Patterns (Creational, Structural, Behavioral)

Design patterns are reusable solutions to common software design problems categorized into Creational, Structural, and Behavioral patterns.

Video: https://youtu.be/Cy59bJ3Gk9o?si=8YrnLh1qBWOx9s2l


Creational Design Patterns

3. Singleton Pattern

Ensures that a class has only one instance and provides a global access point to it.

Video: https://youtu.be/cDM-DeBX1pw?si=QsNM7rxJcyYpg_aR


4. Factory Method Pattern

Defines an interface for creating objects while letting subclasses decide which class to instantiate.

Video: https://youtu.be/zsDepMauAes?si=Gy7sG_BLG4kcqVeb


5. Abstract Factory Pattern

Provides an interface for creating families of related or dependent objects without specifying their concrete classes.

Video: https://youtu.be/t_QjDIzzCxE?si=q2zKPEBNioEsAOzX


6. Builder Pattern

Separates the construction of a complex object from its representation so the same construction process can create different objects.

Video: https://youtu.be/QIbQbwFODAw?si=cTwJRR02v9r53GLh


7. Prototype Pattern

Creates new objects by copying an existing instance instead of creating a new one from scratch.

Video: https://youtu.be/sc1lUC3AgdI?si=jKWA-deElFh9KZ5h


Structural Design Patterns

8. Adapter Pattern

Allows incompatible interfaces to work together by converting one interface into another.

Video: https://youtu.be/DqCqYMw3AVY?si=VtIXen71j1y-ALhs


9. Decorator Pattern

Adds new functionality to objects dynamically without modifying their structure.

Video: https://youtu.be/WxcYvrch1gE?si=jLX-mSyinBAQQir5


10. Facade Pattern

Provides a simplified interface to a complex subsystem.

Video: https://youtu.be/vxRVEb2-0kA?si=5GTh7DUhHRVctOwi


11. Composite Pattern

Composes objects into tree structures to represent part-whole hierarchies.

Video: https://youtu.be/qnexSXUelFs?si=FFVWKpRva3JNNAIA


12. Proxy Pattern

Provides a placeholder object that controls access to another object.

Video: https://youtu.be/d8D4sqTzDaw?si=_YM2Lx49qDKJLczh


13. Bridge Pattern

Decouples an abstraction from its implementation so that both can evolve independently.

Video: https://youtu.be/2cuEHwSGJ9o?si=YE2S6TSNMlvhPis2


14. Flyweight Pattern

Reduces memory usage by sharing common parts of objects instead of creating many similar instances.

Video: https://youtu.be/_CSwCck6cCw?si=d-ViGGG_eo5UO-rm


Behavioral Design Patterns

15. Chain of Responsibility Pattern

Passes a request along a chain of handlers until one of them processes it.

Video: https://youtu.be/TlCtoRS08vM?si=GuKRuGXTqaKpWvO-


16. Observer Pattern

Defines a one-to-many dependency where multiple observers are notified automatically when a subject changes state.

Video: https://www.youtube.com/watch?v=_BpmfnqjgzQ


17. Strategy Pattern

Defines a family of algorithms and makes them interchangeable at runtime.

Video: https://youtu.be/d_3IM8Z739c?si=Sr1n0w4ktD-6EUTd


18. Command Pattern

Encapsulates a request as an object, allowing parameterization and queuing of requests.

Video: https://youtu.be/Tw8nW8k5-zc?si=lkxFiLIXk0MWSjrQ


19. State Pattern

Allows an object to change its behavior when its internal state changes.

Video: https://youtu.be/jw13tzKHeoA?si=LzpcpFjjze_Lk_1t


20. Template Method Pattern

Defines the skeleton of an algorithm while allowing subclasses to override certain steps.

Video: https://youtu.be/jw13tzKHeoA?si=9dLwZKlF0hKGbuIh


21. Mediator Pattern

Reduces direct dependencies between objects by making them communicate through a mediator.

Video: https://youtu.be/TlCtoRS08vM?si=RYJeKp5Ih_DxjBdg


22. Iterator Pattern

Provides a way to sequentially access elements of a collection without exposing its underlying representation.

Video: https://youtu.be/wWDDNGSMu68?si=wXxblL1e_ui0ywWK


23. Memento Pattern

Captures and restores an object's internal state without exposing its implementation details.

Video: https://youtu.be/SLP6-69Fb-0?si=Nnez87nealxdfLWL


24. Interpreter Pattern

Defines a grammar for a language and provides an interpreter to evaluate sentences in that language.

Video: https://www.youtube.com/watch?v=0L9t4j-0hQ0


25. Visitor Pattern

Separates algorithms from the objects on which they operate so new operations can be added easily.

Video: https://youtu.be/YUkWCGoNPFY?si=RD04643ArBXhPj6g


Document