Open-closed

Open to extension, closed to modification

Single Responsibility

One Class, One reason to change

SOLID

Single Responsibility, Open-closed, Liskov Substitution, Interface segregation, Dependency inversion

DRY

Don't Repeat Yourself