ISP
INTERFACE
SEGREGATION PRINCIPLE
public class Comunicador {
CLIENTE public void enviaMensaje (String mensaje) {...}
public void enviaMensaje (Object object) {...}
}
enum Encriptacion {
NINGUNA, ENCRIPTACION_DEBIL, ENCRIPTACION_FUERTE
}
public class Comunicador {
CLIENTE
public void setEncriptacion (Encriptacion restriccion) {}
public void enviaMensaje (String mensaje) {}
public void enviaMensaje (Object object) {}
}
public interface Comunicador {
static enum Encriptacion {
NINGUNA, ENCRIPTACION_DEBIL, ENCRIPTACION_FUERTE
}
public void setEncriptacion (Encriptacion restriccion);
public void enviaMensaje (String mensaje);
public void enviaMensaje (Object object);
}
public class ComunicadorImpl implements Comunicador {
...
}
The Inter face Segregation Principle
“
Clients should not be forced to depend
on met hods t hey do not use
— Robert C. Martin
”
public interface Comunicador { public interface Encriptable {
public void enviaMensaje (String mensaje); static enum Encriptacion {
NINGUNA, ENCRIPTACION_DEBIL, ENCRIPTACION_FUERTE
public void enviaMensaje (Object object); }
}
public void setEncriptacion (Encriptacion restriccion);
}
public class ComunicadorImpl implements Comunicador, Encriptable {
public void setEncriptacion (Encriptacion restriccion) {}
public void enviaMensaje (String mensaje) {}
public void enviaMensaje (Object object) {}
}