IoC, DI e SL
-
Upload
waldyr-felix -
Category
Technology
-
view
1.135 -
download
2
description
Transcript of IoC, DI e SL
Inversion of ControlDependency Injection
Service Locator
Intervalo Técnico – I9 InformáticaArthur Nascimento
Waldyr Félix
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
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.
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.
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)
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
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.
Os padrões SoC e SRP
• O Princípio da Responsabilidade Única (SRP) diz que: – Cada objeto deve possuir apenas uma única
responsabilidade– Apenas um motivo para mudar– Podendo essa ideia ser extrapolada para os métodos
desse objeto também
Exemplo de IOC com DI
Exemplo de IOC com DI
Exemplo de IOC com DI
Frameworks
• Ninject• Unity• Structure Map• Spring.Net• Windsor
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
1) DEMO COM TESTES UNITÁRIOS2) DEMO DE DI COM NINJECT
Dúvidas?Observações?
Críticas?Sugestões?
Lamentações?