This repository contains Design Patterns as discussed in the book Head First Design Patterns
Video Reference: Design Patterns in Object Oriented Programming
- Strategy Pattern
- Observer Pattern
- Decorator Pattern
- Factory Pattern
- Singleton Pattern
- Abstract Factory Pattern
- Command Pattern
- Adapter Pattern
- Facade Pattern
- Proxy Pattern
- Encapsulate what varies.
- Favour Composition over Inheritence
- Program to interfaces not implementations.
- Strive for loosly coupled designs between objects that interact.
- Classes should be open for extension but closed for modification.
- Depend on abstractions. Do not depend on concrete classes.
- Principle of Least Knowledge: talk only to your immediate friends (Reduces Dependencies)