Arquitetura limpa. Parte III - Princípios de Design

Esta série é uma versão curta e gratuita do livro Clean Architecture de Robert Martin (Uncle Bob) 2018. A parte anterior está aqui .





Princípios de design

Os princípios SOLID nos dizem como podemos combinar nossas funções e dados em classes, e como essas classes devem ser interconectadas. Ou seja, esses princípios estão no nível médio. No entanto, eles também se aplicam ao nível do componente (arquitetura de alto nível).





Os princípios SOLID começaram no final dos anos 1980 e se estabilizaram no início dos anos 2000.





SRP: Princípio de Responsabilidade Única

Historicamente, este princípio foi formulado da seguinte forma: um módulo deve ter um e apenas um motivo para mudar.





No entanto, o tio Bob sugere uma formulação diferente e mais precisa: o módulo deve ser responsável por um e apenas um ator .





Um módulo é algum conjunto relacionado de funções e estruturas de dados.





Um exemplo de uma violação do princípio: a classe Employee



com três métodos calculatePay()



, reportHours()



, save()



. Todos os três métodos se aplicam a diferentes atores. calculatePay()



- este é a contabilidade, reportHours()



- este é o departamento de pessoal, save()



- este é o administrador do banco de dados. Se um dos atores pedir para fazer alterações em seu método, isso pode quebrar a lógica de outros métodos. Também torna difícil mesclar alterações de diferentes atores.





– . , .





OCP: /

, .





: .





.





: -. - . OCP , , , . , , , . , .. .





, , .





OCP , .





LSP:

: S T, T S - .





, , .





LSP: /.





LSP: , REST- . . , , .





ISP:

, .





, , .





, . ISP , , , . , , . .





DIP:

, .





Java , .





, , , java.lang.String



. . , , . .





. , , .





.





, ? :









  • , (XML, )









No futuro, nos referiremos ao princípio DIP com mais frequência do que a outros princípios, porque ele nos dita a regra mais importante para a construção de uma arquitetura competente: as Regras de Dependência .





Continua...








All Articles