¿Por qué el patrón Observador usa una interfaz para el objeto Observador? ¿Qué beneficio aporta esto a un diseño? ¿Qué problema de diseño resuelve?

Si solo tiene un oyente (también conocido como observador), no se gana nada, pero si tiene varios oyentes, le permite abstraer los detalles.

Tomemos un ActionListener: puedo adjuntar un ActionListener a cualquier clase, permitiéndole recibir acciones. O bien, podemos usar un ejemplo más simple, como un botón de timbre.

Cuando se presiona, es posible que desee que toque el timbre de la puerta y que encienda luces, porque una de las personas que vive en la casa es sorda. Eso significa que tenemos tanto el controlador de timbre como el controlador de luz con los que debemos lidiar.

Obviamente, el controlador de luz hace más que solo controlar el parpadeo de las luces, y el timbre también puede tener otras funciones, como sonar cuando suena el teléfono.

Esto significa que queremos una interfaz estandarizada para ambos, pero permitimos que cada uno se especialice. Por lo tanto, hacemos la siguiente interfaz:

Interfaz pública DoorBellListener {
puerta vacía pública BellPushed ();
}

Solo necesitamos hacerlo para que el controlador de luz:

LightController de clase pública implementa DoorBellListener
{

puerta vacía pública BellPushed ()
{
luces de destello
}

}

y para el controlador de timbre:

RingerController de clase pública
{

puerta vacía pública BellPushed ()
{
timbre
}

}

More Interesting

¿Es la computación cuántica una forma de computación paralela?

¿Qué cambios drásticos traerá el advenimiento de la computación cuántica en la vida de la gente común?

¿Es la computación cuántica entre los ET la razón por la que son indetectables? No hay transmisiones, solo comunicación cerrada internalizada.

Una CPU que trabaja en la base 4 con la misma frecuencia, ¿sería mucho más potente que una CPU que trabaja en la base 2? ¿Cómo se puede calcular la diferencia de potencia informática entre dos bases?

¿Cuáles son las desventajas de las computadoras cuánticas actualmente disponibles en el mercado?

¿Es el lenguaje ensamblador tan difícil de aprender como la teoría cuántica de campos?

Si asumimos que los procesos cuánticos ocurren en el cerebro humano, ¿sería posible enredar la conciencia humana con una computadora cuántica?

¿Por qué la ciencia en general parece ignorar la diferencia fundamental entre la aleatoriedad clásica (pseudo) y cuántica (genuina) en la naturaleza?

¿Cómo se usa el entrelazamiento cuántico en la computación cuántica?

¿Por qué la capacidad de una computadora cuántica para procesar en qubits le da más poder de procesamiento?

¿Cuáles son algunos buenos recursos sobre información cuántica y computación?

¿Cuáles son los requisitos para ejecutar el código C en una computadora cuántica?

¿Cómo se construyen las puertas cuánticas en la práctica?

¿Qué debo aprender sobre matemáticas y física antes de aprender computación cuántica o información cuántica?

¿Cuál es la diferencia entre un pulso de onda (paquete de ondas) y la expansión en términos de funciones propias en la mecánica cuántica?