By following these SOLID principles, you create more flexible, maintainable code. They encourage clean OOP practices, such as Encapsulation, Abstraction, Inheritance, and Polymorphism
A class should have only one reason to change, meaning it should only have one job or responsibility.
Software entities (classes, modules, functions) should be open for extension but closed for modification.
Subtypes must be substitutable for their base types without altering the correctness of the program.
Clients should not be forced to implement interfaces they do not use.
High-level modules should not depend on low-level modules. Both should depend on abstractions (interfaces).
docker build -t java-solid .
docker run --rm java-solid