O documento discute Inversão de Controle (IoC), Injeção de Dependência (DI) e Localizador de Serviço (SL) como padrões de projeto. Ele fornece exemplos de como IoC e DI podem ser implementados usando frameworks como Ninject e discute as vantagens de usar tais frameworks, incluindo configuração única e resolução automática de dependências.
2. Roteiro O que é IoC? O que é DI? O que é SL? Os padrões SoC e SRP Exemplo de IoC com DI Frameworks Vantagens de usar Frameworks Demo com Testes Unitários Demo de DI com Ninject
3. O que é IoC? Inversão de Controle, ou IoC, é um princípio abstrato que descreve um aspecto de alguns projetos de arquitetura de software em que o fluxo de controle de um sistema é invertido em relação a programação convencional.
4. O que é DI? Injeção de Dependência (ou DI) é um termo usado para descrever o processo de passar as dependências para as classes de baixo acoplamento. É a forma mais usada de IOC. Para isso existem ferramentas chamadas Contêiner de Injeção de Dependência.
5. O que é DI? Formas de DI Injeção pelo construtor Injeção através de métodos Injeção através de propriedades (get/set)
6. O que é SL? Service Locator é um padrão de projeto para que encapsula a obtenção dos objetos, através de uma camada centralizada. Também é uma forma de IoC Frequentemente é criado com base num contêiner de IoC
7. Os padrões SoC e SRP O Princípio da Separação de Responsabilidades (SoC) é o processo de identificação e separação de estruturas dentro do código que representam comportamentos distintos. Geralmente, uma responsabilidade representa uma característica ou comportamento de uma classe.
8. Os padrões SoC e SRP O Princípio da Responsabilidade Única (SRP) dizque: Cadaobjetodevepossuirapenasumaúnicaresponsabilidade Apenas um motivoparamudar Podendoessaideiaserextrapoladaparaosmétodosdesseobjetotambém
13. Vantagens de usar um framework Ponto único de configuração Usa convenção para resolver as dependências Controle de ciclo de vida dos objetos Facilidade de uso
14. 1) Demo com Testes Unitários2) Demo de DI com Ninject