SOLID Principles

SOLID is an acronym for five object-oriented design principles that make software easier to understand, maintain, and extend.

LetterPrincipleOne-liner
SSingle ResponsibilityA class should have only one reason to change
OOpen / ClosedOpen for extension, closed for modification
LLiskov SubstitutionSubtypes must be substitutable for their base types
IInterface SegregationClients should not depend on interfaces they don't use
DDependency InversionDepend on abstractions, not concretions