Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Entendo o IoC Container

Entendo o IoC Container

O IoC é um pattern que descreve a inversão do fluxo de controle em um sistema, mas você sabia que o seu IoC Container pode fazer muito mais do que injeção de dependência? Nesta palestra será abordado o poder do IoC e dos service providers, como são aplicados e como isso pode tornar sua aplicação mais modular, enxuta e desacoplada de estruturas.

Marcos Felipe

July 21, 2018
Tweet

More Decks by Marcos Felipe

Other Decks in Programming

Transcript

  1. 5 ╺ Segue o Dependency Inversion Principle do SOLID; ╺

    Frequentemente aplicado com o pattern Dependency Injection.
  2. “ Módulos de alto nível não devem depender de módulos

    de baixo nível. Ambos devem depender de abstrações. 7
  3. 11

  4. 12

  5. 14

  6. 15

  7. 16

  8. 17

  9. 18 ╺ E se for necessário mudar a forma de

    armazenamento? ╺ E se for necessário adicionar logs ao escrever no FTP?
  10. 19

  11. 20

  12. 21

  13. 22

  14. 23

  15. 24

  16. 25

  17. 27

  18. ╺ Criar PhotosService; 28 ╺ Criar FtpStorage; ╺ Passar FtpStorage

    para LogStorageDecorator; ╺ Criar TrendPhotosImporterService com PhotosService e LogStorageDecorator.
  19. 33

  20. 34

  21. 35

  22. 37

  23. 40

  24. 42

  25. 43

  26. 44

  27. 45

  28. “ 46 Situação 2 Resolver uma classe em que os

    parâmetros estão sem tipagem.
  29. 47

  30. 49

  31. 50

  32. 51

  33. 52

  34. “ Resolver uma classe em que a classe no parâmetro

    precisa ser compartilhada em mais classes que também necessitam. 53 Situação 3
  35. 54

  36. 56

  37. 57

  38. 59

  39. 61

  40. 62

  41. 64

  42. 66

  43. 67

  44. ╺ Reduz o acoplamento de objetos e camadas da sua

    aplicação; 69 ╺ Retirar a responsabilidade de composição de alguns objetos; ╺ Trocar implementações de dependências em diferentes ambientes; ╺ Permitir que objetos possam ser testados de forma mais fácil com Mocks.
  45. 70 ╺ É bem possível que as suas composições mude

    na vida de sua aplicação; ╺ IoC não deve gerenciar todos os objetos; ╺ Ele deve gerenciar “objetos globais”; ╺ Na maioria das vezes você não vai precisar de um container para se beneficiar de DI; ╺ São padrões e não regras, tudo depende. Mas...