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 Leal



SRP : 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

Ivan Assis Leal

Ivan Assis Leal - Atuo a 5 anos com desenvolvimento de software em aplicações de pequeno e médio porte. Possuo experiência em desenvolvimento de aplicações web e desktop, sendo grande entusiasta em práticas de desenvolvimento e gerenciamento ágil de projetos em software. Blog: http://blog.setforcode.com/