This repository is a collection of design patterns in object-oriented programming.
The repository is a work in progress and will be updated as I learn more about design patterns.
- Abstraction
- Encapsulation
- Polymorphism
- Inheritance
- Encapsulate what varies
- Favor composition over inheritance
- Program to an interface, not an implementation
- Strive for loosely coupled designs between objects that interact
- Classes should be open for extension but closed for modification