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

SOLID - Dependency inversion principle

7c1e5b1b100ab8cfacbe14173437c998?s=47 Amanda
October 09, 2018

SOLID - Dependency inversion principle

7c1e5b1b100ab8cfacbe14173437c998?s=128

Amanda

October 09, 2018
Tweet

Transcript

  1. SOLID Dependency Inversion Principle

  2. O que é? Onde vive?

  3. Falando um pouco de SOLID...

  4. Imagine um cenário

  5. Temos um software novo para escrever

  6. No começo é aquela alegria

  7. None
  8. As mudanças são simples, a velocidade é boa

  9. None
  10. None
  11. Fragilidade "Tendência do software de quebrar em vários lugares sempre

    que é alterado. Geralmente em lugares não relacionados conceitualmente com o local da mudança."
  12. Rigidez "Tendência do software de ser difícil de mudar. Qualquer

    mudança gera várias mudanças em sequência." https://fi.ort.edu.uy/innovaportal/file/2032/1/design_principles.pdf
  13. "Abstrações não devem depender de detalhes. Detalhes devem depender de

    abstrações."
  14. None
  15. class Copier def self.copy reader = KeyboardReader.new writer = Printer.new

    keystrokes = reader.read_until_eof writer.write(keystrokes) end end
  16. class Copier def initialize(reader, writer) @reader = reader @writer =

    writer end def copy @writer.write(@reader.read_until_eof) end end
  17. None