The purpose of using these approaches in programming is to promote a flexible, understandable and useful code.
Parallel use of approaches facilitates further support and development of programs.
SOLID, the mnemonic acronym introduced by Michael Feathers for the first five principles named by Robert Martin in the early 2000s, which are the one called "single responsibility, open-closed, liskov substitution, interface segregation, and dependency inversion". meant the five basic principles of object-oriented programming and design.
Single Responsibility Principle (SRP) - The principle of single responsibility states that the class must have only one responsibility. This sole responsibility must be fully encapsulated by the class.
Open / closed principle (OCP) - the principle of openness / closure specifies that software actors must be open for expansion but not closed for modification.
The Liskov substitution principle (LSP) - the substitution principle asserts that the inherited class must complement and not replace the behavior of the base class
Interface segregation principle (ISP) is the principle of interface separation. Compliance with this principle helps the system to remain flexible when making changes to the logic of work and is suitable for refactoring. Customers should not depend on the methods they use. The principle of the separation of interfaces suggests that too "thick" interfaces need to be divided into smaller and more focused.
Dependency inversion principle (DIP). Dependency Inversion determines that entities must depend on abstractions, not on concretions. A high-level module must not depend on a low-level module, and both should depend on abstractions. Following this principle reduces objects coupling.