📊 Capítulo 06: SOLID II: Princípios ISP e DIP / IoC
Módulo 10: Paradigmas de Programação & Padrões de Projeto
🗺️ Visão Geral do Bloco SOLID (Parte 2)
flowchart LR
ISP["I: Interface Segregation"] --> DIP["D: Dependency Inversion"] --> IOC["IoC: Inversão de Controle"]
style ISP fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style DIP fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style IOC fill:#fce4ec,stroke:#e91e63,stroke-width:2px
🎯 Slide 1: Interface Segregation Principle (ISP)
-
Definição Canônica: “Clientes não devem ser forçados a depender de métodos que não utilizam”.
-
Interfaces Finas e Granulares: Preferência por múltiplos contratos pequenos em vez de interfaces gigantes e infladas.
- Sintoma de Violação: Classes implementando métodos com corpos vazios (
pass) ou disparandoNotImplementedError.
🎯 Slide 2: Dependency Inversion Principle (DIP)
-
Regra 1: Módulos de alto nível (domínio) não dependem de detalhes de baixo nível (banco/HTTP); ambos dependem de contratos abstratos.
-
Regra 2: Abstrações não dependem de detalhes; detalhes dependem de abstrações.
- Testabilidade Imparável: Regras de negócio podem ser testadas com 100% de cobertura usando Mocks em milissegundos.
🎯 Slide 3: Injeção de Dependências & Containers IoC
-
Princípio de Hollywood: “Don’t call us, we’ll call you”.
-
Tipos de Injeção: Construtor (preferencial e imutável), Propriedades (Setters) ou Parâmetros de método.
- Containers IoC: Resolução automatizada da árvore de instanciação em tempo de inicialização da aplicação.
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim