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

Interfaces, uma relação de confiança, você está fazendo certo?

Interfaces, uma relação de confiança, você está fazendo certo?

Não é de hoje que se fala das interfaces em sua aplicação, sabemos suas necessidades, como cria-las utilizando a keyword 'interface', mas estamos fazendo isso corretamente? Essa palestra irá abordar interfaces no aspecto de design orientado a objetos, entendendo a necessidade e como tomar decisões corretas utilizando-as.

Marcos Felipe

June 09, 2019
Tweet

More Decks by Marcos Felipe

Other Decks in Programming

Transcript

  1. “Interface é a comunicação entre duas partes distintas que não

    são capazes de se comunicar diretamente” 5
  2. 13

  3. Quanto mais abstrações não utilizadas, mais instabilidade no ponto de

    vista da aplicação. Problemas em não separar conceito Manutenções desnecessárias. 14
  4. 15

  5. 17

  6. ▪ Message é uma interface? ▪ Message é uma classe?

    ▪ Message é uma instância de TelegramMessage? 18
  7. ▪ Message é uma interface? ▪ Message é uma classe?

    ▪ Message é uma instância de TelegramMessage? ▪ Essas informações importam? Não. 19
  8. ▪ A comunicação entre cliente e servidor é descrita por

    um contrato; ▪ Qualquer objeto pode agir como um cliente ou servidor a qualquer momento; ▪ O modelo se preocupa em o que o servidor faz para o cliente e não em como faz. 22
  9. Estamos trabalhando com contratos, a implementação pouco importa para o

    cliente. Sufixo ou Prefixo: I, Imp, Interface, Contract Descrever implementações técnica pode induzir ao erro. 25
  10. 29

  11. 30

  12. 33

  13. É mais simples quando se programa em inglês, podemos utilizar

    sufixos como: “able”, “or”. Usar adjetivos Não é uma regra, é uma possível abordagem. 34
  14. Várias implementações do mesmo conceito O nome da interface é

    o conceito e as derivações são o que tornam a implementação diferente. 1.
  15. 37

  16. Uma implementação aberta para extensões O código atual fornece uma

    implementação de um conceito mas que deve ser estendido para conceitos mais especializados. 2.
  17. 39

  18. Somente uma implementação, sem extensões planejadas Atualmente o código já

    provêm uma implementação de um conceito que não é necessário estender. 3.
  19. 41

  20. Isso não significa que isso nunca acontecerá ou será necessário

    no futuro. Sem extensões planejadas Evitar over-engineering. 42
  21. 43

  22. 44

  23. 45

  24. “Suas ações se tornam seus hábitos, seus hábitos se tornam

    seus valores, seus valores se tornam seu destino” - Gandhi 48