Coesão e Acoplamento - Exemplos

1 resposta
jkrfabio

Comecei a estagiar faz pouco tempo, e me chamaram a atenção sobre duas coisas: coesão e acoplamento.
Num mundo perfeito teríamos alta coesão e o baixo acoplamento certo?
Consegui entender sobre alta coesão, segue um exemplo de como não se deve fazer:

public class Produto
{
	public void venderProduto()
	{
	
	}

	public void imprimirEstoque()
	{

	}
		
	public void reporProduto()
	{

	}
}

Entendi sobre acoplamento tb, e como se medir! Mas alguém poderia postar um exemplo simples de alto acoplamento?

1 Resposta

kadu.m.lino
public class GerenciaProduto{
    
    private FechaConta fechaConta;
    private Carrinho carrinho;

    public GerenciaProduto(){    
        carrinho = new Carrinho();
    }

    public void executa(Produto produto){
        new FechaConta(carrinho).finaliza(produto);    
    }
}

Repare que se o meu carrinho precisar de um usuário logado eu acabo quebrando o código e mais, e se a minha classe FechaConta além de precisar de um carrinho ele precise agora de um outro obejto?
vc quebra em todo o lugar que vc add essa classe FechaConta.

Como tirar essa acoplamento? impossível.
mas.... vc pode diminuí - lo aplicando inversão de controle, fazendo com que o GerenciaProduto receba o Objeto FechaConta com o carrinho dentro
Ficando assim...

class GerenciaProduto {

    private FechaConta fechaConta;

    public GerenciaProduto(FechaConta fechaConta){
        this.fechaConta = fechaConta;
    }

    public void executa(Produto produto){
        fechaConta.finaliza(produto);
    }

}

repara como o código ficou menos acoplado? se o meu objeto FechaConta precisar de um outro Objeto? problema dele.... aqui não quebra mais!

Criado 5 de fevereiro de 2013
Ultima resposta 5 de fev. de 2013
Respostas 1
Participantes 2