This repo serves as a reference to a series of technical sessions conducted on SOLID Principles at my workplace.
- Single Responsibility Principle
- Open Close Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Currently, the examples added are written using Java programming language. Anyone interested in contributing can fork and submit PR for other programming languages.
- For explaining every principle, there's a separate package present in the repo with respective principle's title.
- The package contains a bad implementation of an use case, typically a mock or stub which doesn't follow the respective principle.
- Also, it has a modified good implementation of the same use case, which follows the respective principle.
- Every package has a dedicated README for explaining the principle as well as info about the use case described.
- The code examples added here are not executable in nature and will never be that way in future.
- They only demonstrate scenarios to help understand the principles in more practical way.