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.
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.
Creational Design Patterns¶
3. Singleton Pattern¶
Ensures that a class has only one instance and provides a global access point to it.
4. Factory Method Pattern¶
Defines an interface for creating objects while letting subclasses decide which class to instantiate.
5. Abstract Factory Pattern¶
Provides an interface for creating families of related or dependent objects without specifying their concrete classes.
6. Builder Pattern¶
Separates the construction of a complex object from its representation so the same construction process can create different objects.
7. Prototype Pattern¶
Creates new objects by copying an existing instance instead of creating a new one from scratch.
Structural Design Patterns¶
8. Adapter Pattern¶
Allows incompatible interfaces to work together by converting one interface into another.
9. Decorator Pattern¶
Adds new functionality to objects dynamically without modifying their structure.
10. Facade Pattern¶
Provides a simplified interface to a complex subsystem.
11. Composite Pattern¶
Composes objects into tree structures to represent part-whole hierarchies.
12. Proxy Pattern¶
Provides a placeholder object that controls access to another object.
13. Bridge Pattern¶
Decouples an abstraction from its implementation so that both can evolve independently.
14. Flyweight Pattern¶
Reduces memory usage by sharing common parts of objects instead of creating many similar instances.
Behavioral Design Patterns¶
15. Chain of Responsibility Pattern¶
Passes a request along a chain of handlers until one of them processes it.
16. Observer Pattern¶
Defines a one-to-many dependency where multiple observers are notified automatically when a subject changes state.
17. Strategy Pattern¶
Defines a family of algorithms and makes them interchangeable at runtime.
18. Command Pattern¶
Encapsulates a request as an object, allowing parameterization and queuing of requests.
19. State Pattern¶
Allows an object to change its behavior when its internal state changes.
20. Template Method Pattern¶
Defines the skeleton of an algorithm while allowing subclasses to override certain steps.
21. Mediator Pattern¶
Reduces direct dependencies between objects by making them communicate through a mediator.
22. Iterator Pattern¶
Provides a way to sequentially access elements of a collection without exposing its underlying representation.
23. Memento Pattern¶
Captures and restores an object's internal state without exposing its implementation details.
24. Interpreter Pattern¶
Defines a grammar for a language and provides an interpreter to evaluate sentences in that language.
25. Visitor Pattern¶
Separates algorithms from the objects on which they operate so new operations can be added easily.