De acoplamento e coesão
-
09-06-2019 - |
Solução
Acoplamento
Solto:Você e o cara da loja de conveniência.Você se comunicam através de um protocolo bem definido para alcançar seus respectivos objetivos - você pagar o dinheiro, ele permite que você anda com o saco de Cheetos.Qualquer um pode ser substituído, sem perturbar o sistema.
Tight:Você e sua esposa.
Coesão
Baixo:A loja de conveniência.Você vai lá para tudo, de gás para o leite, ATM serviços bancários.Produtos e serviços têm pouco em comum, e a comodidade de ter todos eles em um só lugar pode não ser suficiente para compensar o aumento de custos e queda na qualidade.
Alta:A loja de queijo.Eles vendem queijo.Nada mais.Não pode beat 'em quando ele vem para o queijo embora.
Outras dicas
Acoplamento - Uma medida de quanto um módulo (pacote, classe, método) depende de outros módulos.É desejável para reduzir o acoplamento, ou reduzir a quantidade que um determinado módulo depende de outros módulos de um sistema.
Coesão - Uma medida de quão intimamente relacionados com os membros (classes, métodos, funcionalidade dentro de um método) de um módulo são os outros membros do mesmo módulo.É desejável aumentar a coesão como que indica que um módulo tem uma tarefa específica e não somente essa tarefa.
Um dos melhores abrangente discussões do projeto de software, conceitos relacionados com OO (incluindo estes) é Bertrand Meyer Software Orientado A Objetos De Construção.
Sobre os 'acoplamento', ele dá o seu Fraco Acoplamento / Small Interfaces regra da seguinte forma:
Se dois módulos de se comunicar, eles devem trocar o mínimo de informação possível.
Meyer material relacionado a coesão não é sempre reduzido a uma única esclarecedora declaração, mas acho que essa frase de Steve McConnell Código Completo resume muito bem:
A coesão refere-se a quão de perto todas as rotinas de uma classe ou de todo o código de uma rotina de suporte de uma central finalidade
Acoplamento significa dependência de outros.
Coesão significa completude com o próprio.
Uma rápida e suja maneira de medir o acoplamento é a medida de sua import
(ou similar) demonstrações.
"O acoplamento é uma medida de interdependência entre módulos, qual deve ser minimizada" "a coesão, uma qualidade a ser maximizada, centra-se nas relações entre as atividades realizadas por cada módulo."
citou este papel: http://steve.vinoski.net/pdf/IEEE-Old_Measures_for_New_Services.pdf