Anuncios

Bienvenidos sean a este post, hoy veremos uno de los principios de SOLID.

Anuncios
Anuncios

Este principio enuncia lo simple: un objeto, una tarea. La idea es tratar de reducir la funcionalidad de los objetos y la complejidad de su relacion, haciendo que cada objeto tenga una responsabilidad unica aunque sabemos que no es facil diseccionar un objeto complejo en componentes simples y pequeños. Single responsability se traduce como responsabilidad unica y es en lo que trabajara alrededor del concepto. El objetivo no es tener un metodo por clase sino que esa clase o modulo sea responsable de una sola cosa. Tomemos como ejemplo a la clase Usuario que hemos utilizado en posts anteriores, esta tiene una sola tarea como es almacenar la informacion del usuario. Pero le agregamos las opciones de pago, esto forzo a agregar opciones de pago en Usuario y nos forzo a tener metodos para agregar, quitar u obtener los medios de pago. Y lo ultimo fue agregar la opcion primaria de pago, lo cual nos llevo a agregar una logica en los metodos de la clase Usuario.

Anuncios
Anuncios

Con esto podemos movernos en dos direcciones: la primera sera descomponer la clase Usuario en dos clases separadas. Donde una puede ser llamada InfoUsuario y contendra unicamente la informacion basica del usuario, y la otra se encargara de las opciones de pago del usuario a la cual llamaremos OpcionesPago. Si bien este nuevo diseño es muy interesante nos quedaremos con el primero pero por que? Pensemos que la clase Usuario contiene a ambas, la informacion y las opciones de pago, los cuales representan una pieza de informacion. Para establecer las opciones de pago mediante setter y getter son las mismas que usamos para el email por lo tanto no es necesario diferenciarlos y esto satisface al principio de la responsabilidad unica.

Anuncios
Anuncios

Sin embargo, cuando agreguemos la funcionalidad de pagos para Usuario nos destruira la paz. Porque en ese escenario, la clase Usuario almacenara la informacion del usuario y hara las transacciones de pago. Como podran deducir, esto es inaceptable en los terminos del principio y por lo tanto no lo haremos. Este principio tambien se aplica a las funciones, tomemos el caso de agregar_opciones_pago. Este metodo posee dos responsabilidades, agrega un nuevo metodo primario si el segundo argumento es true. De lo contrario, este agrega un nuevo elemento a la lista de opciones no primarios. Segun el principio, lo recomendable es tener un metodo que se encargue de las tarea de establecer cual es el primario. Para que cada metodo tenga solo una tarea asignada, tal como lo indicamos la inicio.

Anuncios

En resumen, hoy hemos visto el principio de Responsabilidad Unica, Single Responsability Principle, que es, para que sirve, como se debe utilizar y algunos casos donde aplicarlo y que puede desencadenar. Espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50