SOLID representa os cinco primeiros princípios da programação orientada a objetos e design de código identificados por Robert C. Martin (Uncle Bob).
Neste projeto, implementei alguns exemplos básicos e práticos para estudo.
Single Responsability Principle: As responsabilidades deve ser bem definidas e separadas nas classes correspondentes
Open Closed Principle: Toda entidade deve ser aberta a extensão e fechada para alteração.
Liskov Substituition Principle: Toda classe derivada deve ser substituivel pela classe base
Interface Segregation Principle: Interfaces coesas, com comportamentos específicos separados
Dependency Inversion Principle: Depender significa acoplamento, então para manter baixo acoplamento, opte sempre pela interface, pois uma vez que possuem N implementações, tendem a ser mais estáveis