Skip to content

SOLID

solid.jpeg

S: Single Responsibility Principle

The classes have only a purpose

O: Open closed principle

Open to the extension close to the modification

L: Liskov-Substitution Principle

Given a parent class with some functionality, you can extend the parent with a child in the way that
the child keep on with the same functionality and adding more. So in this way you can exchange the parent or child and the code keep on working well.

I: Interface Segregation Principle

Prevent classes from relying on things that they don't need. So the interfaces has to be split in another more small with only the needed responsibility, only the unique functionality into interfaces.

D: Dependency Inversion Principle

The classes should depend on abstractions. Use interfaces instead concrete implementations as collaborators.

YAGNI

"You aren't going to need it" (YAGNI) is a principle which arose from extreme programming (XP) that states a programmer should not add functionality until deemed necessary

DRY

Don't repeat yourself don't repeat code