This repository contains a demo that demonstrates the principles and rules of SOLID programming. The goal of this project is to provide a practical demonstration of the SOLID principles, a set of design principles for writing maintainable and scalable software. Have a look and browse the branches!
SOLID is an acronym that stands for:
- Single Responsibility Principle (SRP): A class should have only one reason to change.
- Open/Closed Principle (OCP): Software entities (classes, modules, functions) should be open for extension but closed for modification.
- Liskov Substitution Principle (LSP): Subtypes must be substitutable for their base types.
- Interface Segregation Principle (ISP): Clients should not be forced to depend on interfaces they do not use.
- Dependency Inversion Principle (DIP): High-level modules should not depend on low-level modules. Both should depend on abstractions.