Estoy usando la clase observable/interfaz Observer en Java para implementar el patrón de observador. La interfaz Observer requiere sobrescribir el método de actualización (Observable o, Object arg).Cambiar el nombre de los métodos implementados para el patrón Observer en Java
El problema es que estoy observando un buen número de clases, y el método de mi actualización() se ha hecho muy grande:
public class Foo implements Observer {
....
public void update(Observable o, Object param) {
if (o instanceof A) {
// large chunk of code
...
} else if (o instanceof B) {
// large chunk of code
...
}
...
} else if (o instanceof H) {
...
}
}
}
Con el fin de dividir el método, estoy pensando en extender la interfaz Observer con, por ejemplo, Interfaz de AObserver, interfaz BObserver ... que requiere sobreescritura onAUpdate, onBUpdate ... respectivamente. Este método también facilitará determinar qué observables está observando la clase en función de las interfaces que implementa.
class Foo implements AObserver, BObserver {
....
public void onAUpdate(Observable o, Object param) {
if (o instanceof A) {
// large chunk of code
...
}
public void onBUpdate(Observable o, Object param) {
if (o instanceof B) {
// large chunk of code
...
}
}
El problema es que si he heredado Observer, todavía tengo que implementar el método update(). No puedo cambiarle el nombre a onAUpdate ni a ningún otro nombre de mi elección.
¿Algún consejo? Gracias.
Gracias, esta es una buena solución. No estoy seguro si es directamente adecuado para mi situación, podría tener que adaptar algunas partes, pero me dio algunas buenas ideas. –
@David: Me alegra que lo encuentre útil. Mis esfuerzos no fueron desperdiciados. ;) –