18 mayo 2010

Responsabilidad Única

Principio de Responsabilidad Única (The Single Responsibility Principle, SRP)

"Cada objeto en el sistema deben tener una simple responsabilidad, y todos los servicios de los objetos deben cumplir con esa simple responsabilidad"

Una clase debería tener solo una razón para cambiar, este principio tiene que ver con responsabilidades, cada objeto en un diseño tiene que enfocarse en solo una responsabilidad y si esa responsabilidad cambia, sabremos donde exactamente tenemos que hacer el cambio en nuestro código.

Este principio será implementado correctamente cuando cada uno de nuestras clases tengan solo una razón para cambiar, en aplicaciones bien diseñadas una clase tiene solo una responsabilidad, hace esta responsabilidad correctamente y  no permite que otras clases compartan ese comportamiento.

Cohesión es otro termino para el principio SRP, si nuestra aplicación es altamente Cohesiva esto significa que estamos aplicando correctamente este principio.

Una forma para probar este principio es escribir en un papel algo parecido a la siguiente imagen, en la primera línea se escribe el nombre de la clase, en las siguientes líneas escribiremos el nombre de la clase y los métodos de las clase, ocuparemos tantas lineas como métodos tengamos en la clase, luego leeremos cada línea y analizaremos si la frase tiene sentido y si la clase tiene la responsabilidad del método descrito.


Veamos un ejemplo con la siguiente clase:



Veamos el resultado de aplicar el análisis en base al documento que se definió.



Aclarando que el método obtenerAceite() se refiere solo a una lectura de aceite ó con una posibilidad de asignar esta responsabilidad a otra clase.

No hay comentarios:

Publicar un comentario