Vamos retornar ao nosso exemplo anterior, que foi alterado para aumentar a coesão da classe cliente. Nesse exemplo, separamos as responsabilidades, mas acabamos criando uma dependência muito forte da classe cliente com a classe tela, visto que o método de impressão deve necessariamente receber um objeto do tipo tela.

Isso indica um forte acoplamento da classe Cliente com a classe tela, o que não é desejável. Então o que fazer quando nos deparamos com um projeto que não tenha essas características?

A solução é a refatoração que consiste em rever a arquitetura da aplicação de forma a buscar reduzir o acoplamento entre as classes e aumentar a coesão. Uma das formas mais comuns de reduzir o acoplamento entre as classes é usar interfaces.

Copyright © 2014 AIEC.