Este documento resume os principais princípios de projeto orientado a objetos:
1) O princípio aberto/fechado defende que módulos devem ser abertos para extensão mas fechados para modificação.
2) O princípio da substituição de Liskov estabelece que subclasses devem ser substituíveis por suas classes base.
3) O princípio da responsabilidade única prega que classes devem ter uma única responsabilidade.