Software design is a fundamental pillar for developing scalable, maintainable, and flexible applications.
The focus of this document is on the practical implementation of the Liskov Substitution Principle (LSP) and the Interface Segregation Principle (ISP) as part of the SOLID principles.
These principles are applied in a user role system to improve the structure, maintainability, and flexibility of the code.
By implementing LSP and ISP, the code becomes more extensible, interchangeable, and focused on specific responsibilities.