Vejamos o exemplo de classe a seguir:
class cliente{ private nome; private telefone; private endereço; public cliente(String nome){ ... } public void setTelefone(String telefone){ ... } public String getTelefone(){ ... } public setEndereco(String telefone){ ... } public String getEndereco(){ ... } Public void imprimeCliente(){ limpaTela(); … } public void limpaTela(){ ... } }
Podemos verificar que a classe tem um método chamado limpaTela(), que não tem relação com a proposta da classe cliente que é a representação de um cliente. O processamento de tela não deveria estar na classe, pois ela pode ser dependente do dispositivo. Então, caso quiséssemos alterar o dispositivo de apresentação, teríamos que alterar esse método que está dentro da classe cliente. Imagina quanto tempo perderíamos procurando na aplicação todos os métodos de impressão para fazer essa alteração.