Diferença entre acoplamento e coesão

Diferença entre acoplamento e coesão
Diferença entre acoplamento e coesão

Vídeo: Diferença entre acoplamento e coesão

Vídeo: Diferença entre acoplamento e coesão
Vídeo: Curso de Node.js - O que são sessões e cookies #37 2024, Novembro
Anonim

Acoplamento vs Coesão

Acoplamento e coesão são dois conceitos encontrados em Java (e todas as outras linguagens orientadas a objetos). O acoplamento mede o quanto cada um dos módulos do programa é dependente dos outros módulos do programa. A coesão mede quão fortemente cada uma das funções está relacionada dentro de um módulo. Na verdade, qualquer linguagem orientada a objetos (incluindo Java) tem os dois objetivos principais de aumentar a coesão e diminuir o acoplamento ao mesmo tempo, a fim de desenvolver programas mais eficientes. Essas duas métricas de engenharia de software foram desenvolvidas por Larry Constantine para reduzir o custo de modificação e manutenção de software.

O que é Coesão?

Coesão mede quão fortemente cada uma das funções está relacionada dentro de um módulo de programa. Aulas bem estruturadas levam a programas altamente coesos. Se uma determinada classe está executando um conjunto de funções altamente relacionadas, essa classe é considerada coesa. Por outro lado, se uma classe está executando um monte de funcionalidades totalmente não relacionadas, isso significa que a classe não é coesa. É importante entender que não ter coesão não significa que o aplicativo geral não tenha a funcionalidade necessária. Só que sem coesão, será muito difícil gerenciar as funcionalidades porque elas ficarão espalhadas em muitos lugares errados à medida que a complexidade da aplicação aumenta com o tempo. Manter, modificar e estender comportamentos espalhados por todo o código é muito tedioso, mesmo para os programadores mais experientes.

O que é Acoplamento?

Coupling mede o quanto cada um dos módulos do programa é dependente dos outros módulos do programa. As interações entre dois objetos ocorrem porque há acoplamento. Programas fracamente acoplados são altamente flexíveis e extensíveis. O acoplamento forte nunca é bom porque um objeto pode ser altamente dependente de outro objeto. Isso é um pesadelo quando o código é modificado, porque alto acoplamento significa que os programadores precisam trabalhar em vários locais de código até mesmo para uma única modificação comportamental. O acoplamento forte sempre leva a programas com baixa flexibilidade e menos escalabilidade/extensibilidade. No entanto, em linguagens de programação como Java, evitar completamente o acoplamento é impossível. Mas é recomendado que os programadores façam o seu melhor esforço para reduzir o acoplamento o máximo possível. Também é possível ter algum acoplamento para ajudar os objetos a interagirem entre si sem prejudicar sua escalabilidade e flexibilidade.

Qual é a diferença entre Acoplamento e Coesão?

Ainda que acoplamento e coesão lidem com a qualidade de um módulo em engenharia de software, são conceitos totalmente diferentes. A coesão fala sobre o quanto as funcionalidades estão relacionadas entre si dentro do módulo, enquanto o acoplamento lida com o quanto um módulo é dependente dos outros módulos do programa dentro de toda a aplicação. Para ter um software de melhor qualidade, coesão e acoplamento devem atingir as duas extremidades opostas de seus espectros. Em outras palavras, baixo acoplamento e forte coesão fornecem o melhor software. Ter campos privados, classes não públicas e métodos privados fornece acoplamento flexível, enquanto torna todos os membros visíveis dentro da classe e ter package como visibilidade padrão fornece alta coesão.

Recomendado: