Desenvolvimento - Java
Princípios de Design orientado a objeto - SRP
Este princípio nos diz que uma classe deve ter apenas um motivo para mudar, apesar de parecer simples este princípios é constantemente violado e a ...
por Ivan Assis LealSRP : The single responsibility Principle
“THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE”.
Este princípio nos diz que uma classe deve ter apenas um motivo para mudar, apesar de parecer simples este princípios é constantemente violado e a aplicação dele pode ajudar em muito em um bom projeto de software orientado a objetos.
O exemplo dado por Rober C. Martin nos ajuda a enteder este princípio. Veja a interface abaixo:
interface Modem
{
public void dial(String pno);
public void hangup();
public void send(char c);
public char recv();
}
Percebemos que todas as funções da classe “Modem” parecem fazer sentido estar nesta interface. Segundo Robert, podemos entender a responsabilidade da SRP como “uma única razão” para classe mudar, assim, se você perceber que em sua classe há 2 razões ou motivos para que ela mude, sua classe possui mais de uma responsabilidade.
Pode parecer difícil identificar isso no começo, mas considere a interface para Modem acima, esta interface possui 2 responsabilidades: A primeira gerenciar a conexão do Modem (Dial() e Hangup()) e a segunda forma de envio de dados ( Send() e Recv() ).
Uma melhor construção desta interface pode ser vista no diagrama de classe abaixo.
http://www.objectmentor.com/resources/articles/srp.pdf
Livro : UML for Java Programmers - Rober C. Martin
Livro : Código Limpo - Rober C. Martin