IoC, DI e SL

15
Inversion of Control Dependency Injection Service Locator Intervalo Técnico – I9 Informática Arthur Nascimento Waldyr Félix

description

Palestra realizada no intervalo tecnico da Inove Informatica.Demo em : https://github.com/waldyrfelix/DemoIoC

Transcript of IoC, DI e SL

Page 1: IoC, DI e SL

Inversion of ControlDependency Injection

Service Locator

Intervalo Técnico – I9 InformáticaArthur Nascimento

Waldyr Félix

Page 2: IoC, DI e SL

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

Page 3: IoC, DI e SL

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.

Page 4: IoC, DI e SL

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.

Page 5: IoC, DI e SL

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)

Page 6: IoC, DI e SL

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

Page 7: IoC, DI e SL

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.

Page 8: IoC, DI e SL

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

Page 9: IoC, DI e SL

Exemplo de IOC com DI

Page 10: IoC, DI e SL

Exemplo de IOC com DI

Page 11: IoC, DI e SL

Exemplo de IOC com DI

Page 12: IoC, DI e SL

Frameworks

• Ninject• Unity• Structure Map• Spring.Net• Windsor

Page 13: IoC, DI e SL

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

Page 14: IoC, DI e SL

1) DEMO COM TESTES UNITÁRIOS2) DEMO DE DI COM NINJECT

Page 15: IoC, DI e SL

Dúvidas?Observações?

Críticas?Sugestões?

Lamentações?