Princípio de design 2: Inversão de controle, injeção de dependência e lei de Dimit

Inversão de controle

A inversão de controle é uma ideia de design relativamente geral, não um método de implementação específico, e geralmente é usada para orientar o design do nível de estrutura. O "controle" aqui mencionado se refere ao controle do fluxo de execução do programa, e a "inversão" se refere ao próprio controle do programador da execução de todo o programa antes que o framework seja usado. Depois de usar o framework, o fluxo de execução de todo o programa é controlado pelo framework. O controle do processo é "revertido" do programador para o framework.

Injeção de dependência

A injeção de dependência e a inversão de controle são exatamente o oposto, é uma técnica de codificação específica. Não criamos objetos de classe dependentes dentro da classe por meio de new, mas depois que os objetos de classe dependentes são criados externamente, eles são passados ​​(ou injetados) para a classe para uso por meio de construtores, parâmetros de função, etc.

Estrutura de injeção de dependência

Por meio dos pontos de extensão fornecidos pelo framework de injeção de dependência, simplesmente configuramos todas as classes necessárias e suas dependências entre as classes, e o framework pode criar objetos automaticamente, gerenciar o ciclo de vida de objetos, injeção de dependência, etc., o que originalmente exigia os programadores Coisas para fazer.

Princípio de reversão de dependência

O princípio de inversão de dependência também é chamado de princípio de inversão de dependência. Este princípio é semelhante à inversão de controle e é usado principalmente para orientar o projeto do nível da estrutura. Módulos de alto nível não dependem de módulos de baixo nível, todos eles contam com a mesma abstração. A abstração não deve depender de detalhes de implementação específicos.Detalhes de implementação específicos dependem da abstração.

 

"Alta coesão e baixo acoplamento" é uma ideia de design muito importante, que pode melhorar efetivamente a legibilidade e a manutenção do código e reduzir o escopo das mudanças de código causadas por mudanças funcionais. "Alta coesão" é usado para orientar o design da própria classe e "acoplamento flexível" é usado para orientar o design das dependências entre as classes. A chamada alta coesão significa que funções semelhantes devem ser colocadas na mesma categoria, e funções diferentes não devem ser colocadas na mesma categoria. Funções semelhantes são freqüentemente modificadas ao mesmo tempo, colocadas na mesma categoria, a modificação será mais concentrada. O chamado acoplamento fraco significa que, no código, as dependências entre as classes são simples e claras. Mesmo se duas classes tiverem um relacionamento de dependência, as alterações de código em uma classe não levarão ou raramente levarão a alterações de código na classe dependente.

Regra de Dimit: entre classes que não devem ter dependências diretas, não têm dependências; entre classes que têm dependências, tente contar apenas com as interfaces necessárias. A lei de Dimit é reduzir o acoplamento entre as classes, de forma que quanto mais independentes as classes, melhor. Cada classe deve saber menos sobre as outras partes do sistema. Depois que uma mudança ocorre, há menos classes que precisam entender a mudança.

Acho que você gosta

Origin blog.csdn.net/flandersfields/article/details/107605750
Recomendado
Clasificación