SOLID principles

The set of five design principles for object-oriented programming that were first introduced by Robert C. Martin. These principles are intended to make software designs more understandable, flexible, and maintainable.

Single Responsibility Principle

A class should have only one reason to change.

Open/Closed Principle

Software entities should be open for extension but closed for modification.

Liskov Substitution Principle

Objects of a superclass should be replaceable with objects of its subclasses without breaking the application.

Interface Segregation Principle

Many client-specific interfaces are better than one general-purpose interface.

Dependency Inversion Principle

Depend upon abstractions, not concretions.

These principles provide a foundation for writing maintainable code that can evolve over time without becoming a tangled mess.