<aside>
📌 DSc. José Rui Castro de Sousa

Pessoal,
Hoje vamos abordar um assunto de extrema importância para todos vocês que estão iniciando sua jornada na graduação em Ciência da Computação: os princípios SOLID. Mais especificamente o D (princípio da inversão de dependência)
Esses princípios são fundamentais para a construção de software de qualidade e são amplamente utilizados na indústria de desenvolvimento. Compreender e aplicar esses conceitos não só irá impulsionar o seu conhecimento em programação, mas também tornará vocês desenvolvedores mais habilidosos e profissionais.
Então, vamos lá! O acrônimo SOLID é composto por cinco princípios que são:
- S - Princípio da Responsabilidade Única (Single Responsibility Principle): Este princípio nos ensina que uma classe deve ter apenas uma única responsabilidade. Ou seja, uma classe deve ter um único motivo para mudar. Isso promove a coesão e facilita a manutenção do código.
- O - Princípio do Aberto/Fechado (Open/Closed Principle): Esse princípio nos orienta a projetar classes e módulos que sejam abertos para extensão, mas fechados para modificação. Em outras palavras, devemos poder estender o comportamento de uma classe sem precisar modificar o código existente.
- L - Princípio da Substituição de Liskov (Liskov Substitution Principle): Esse princípio estabelece que as classes derivadas devem ser substituíveis por suas classes base sem afetar a corretude do programa. Isso significa que as classes derivadas devem ser coerentes com o comportamento esperado das classes base, garantindo assim a consistência do sistema.
- I - Princípio da Segregação de Interfaces (Interface Segregation Principle): Esse princípio nos orienta a criar interfaces coesas e específicas para cada cliente, evitando interfaces genéricas e sobrecarregadas. Dessa forma, as classes não devem ser forçadas a depender de métodos que não utilizam.
- D - Princípio da Inversão de Dependência (Dependency Inversion Principle): Esse princípio nos ensina a depender de abstrações e não de implementações concretas. Em outras palavras, devemos programar para interfaces e não para implementações, o que torna nosso código mais flexível e de fácil manutenção.
É essencial compreender esses princípios e aplicá-los em seus projetos de software. Eles fornecem diretrizes valiosas para escrever código limpo, modular e de fácil evolução.
Durante seus estudos, recomendo que assistam a videoaulas, realizem exercícios e pratiquem a implementação desses princípios em seus próprios projetos. Ao final, questionem-se:
- Ficou claro para mim como usar o principio da inversão de dependência?
- Consegui entender o real sentido de criar uma interface?
- Entendi que ela é uma abstração?
Coloquem em prática o conhecimento adquirido e lembrem-se de que a jornada de aprendizado na programação é contínua. Com dedicação e persistência, vocês estarão um passo à frente na construção de software de qualidade.
Bons estudos!
</aside>
Parte 01
https://www.youtube.com/watch?v=a3tvszPtEvs
Parte 02
https://www.youtube.com/watch?v=Pq72-zb0KZE&list=PLqlIQgAFrQ164-r2ErHvYTlt7LNQ_j3Xx&index=33
- Capitulos do video
- Conheça o famoso: Uncle Bob!
- Leitura obrigatória (Contextualizando o SOLID)
Modelo SEM Dependency Inversion (DI)
Modelo com Dependecy Inversion (DI)
Código fonte - Git
IFCoder / Java / OO / ProjetoEscola Notificador SOLID · GitLab
- Coloque o código acima, para funcionar em seu computador e veja a facilidade em trocar os serviços!
- Isso é Dependency Inversion!