Pergunta

Eu estou tentando resumem os conceitos de acoplamento e coesão para uma definição concisa.Alguém pode me dar uma breve explicação compreensível (menor do que as definições sobre a Wikipédia aqui e aqui)?Como eles interagem?

Obrigado.

Alguém tem uma boa, curta exemplo?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top