Patrones de diseño: SRP
Vamos con SRP:
Single Responsibility Principle (Principio de Responsabilidad Única)
Como frase, nos quedaremos con esta: Una clase debe tener una única razón para cambiar.
Asumamos que necesitamos un objeto que guarde un email. Utilizaremos la interface IEmail del ejemplo.
A primera vista todo funciona. Pero podemos ver como IEmail y Email tienen 2 razones para cambiar.
Si guardamos una clase, cada cambio de responsabilidad afectará a la otra.
// SRP - Mal ejemplo
interface IEmail {
public void setSender(String sender);
public void setReceiver(String receiver);
public void setContent(String content);
}
class Email implements IEmail {
public void setSender(String sender) {// set sender; }
public void setReceiver(String receiver) {// set receiver; }
public void setContent(String content) {// set content; }
}
Podemos crear una nueva interface IContent y Content para repartir las responsabilidades.
// SRP - Buen ejemplo
interface IEmail {
public void setSender(String sender);
public void setReceiver(String receiver);
public void setContent(IContent content);
}
interface Content {
public String getAsString(); // used for serialization
}
class Email implements IEmail {
public void setSender(String sender) {// set sender; }
public void setReceiver(String receiver) {// set receiver; }
public void setContent(IContent content) {// set content; }
}
Conclusión:
El SRP representa una buena forma de identificar clases durante la fase de diseño de una aplicación, y nos recuerda pensar en todas las vías en las que una clase puede evolucionar. Se necesita una buena separación de responsabilidades.

![[FSF Associate Member]](http://static.fsf.org/nosvn/associate/fsf-7366.png)

Información Bitacoras.com…
Valora en Bitacoras.com: Vamos con SRP: Single Responsibility Principle (Principio de Responsabilidad Única) Como frase, nos quedaremos con esta: Una clase debe tener una única razón para cambiar. Asumamos que necesitamos un objeto que guarde un ema…
Trackback by Bitacoras.com — 14 septiembre, 2009 @ 18:41