« Une classe qui utilise des instances d’une classe doit pourvoir utiliser des instances qui dérivent de cette classe »
« Les modules de haut niveau ne doivent pas dépendre de modules de bas niveau. »
« Ne pas surcharger une classe avec des responsabilités inutiles »
« Tout module (package, classe, méthode) doit être ouvert aux extensions mais fermé aux modifications. »
« Une classe ne devrait pas à utiliser une interface dont elle n’en a pas l’utilité à 100% »