Red de conocimiento informático - Aprendizaje de programación - patrón de diseño java - observador

patrón de diseño java - observador

//Asunto java

Paquete modo youngmaster Observador

/**

* @author youngmaster

* @E mail young * @version myEclipse

* @create time mañana:

*/**

/**

/**

* El patrón observador es un patrón de comportamiento cuyo propósito es definir dependencias de uno a muchos entre objetos

* Cuando El estado de un objeto cambia, todos los objetos que dependen de él cambiarán. Cuando el estado de un objeto cambia, todos los objetos que dependen de él son notificados y actualizados automáticamente

* En el proceso de creación de un sistema, un efecto secundario común es dividir el sistema en una serie de clases cooperativas

* Necesidad de mantener la coherencia entre objetos relacionados. No queremos unir clases estrechamente para mantener la coherencia

* Porque esto reducirá su disponibilidad

* Debido a En este caso, el objeto clave del patrón es la meta (propósito), es decir, lo que el objeto está tratando de lograr, o el objeto que está tratando de lograr la meta. Los objetos clave de este modo son objetivos y observadores

* Un objetivo puede tener cualquier número de observadores dependiendo de él. Una vez que el estado del objetivo cambie, todos los observadores serán notificados

. * En respuesta a esta notificación, cada observador consultará el objetivo para sincronizar su estado con el estado del objetivo. Esta interacción también se denomina patrón de publicación-suscripción.

* El objetivo es el editor de la notificación. Cuando envía la notificación, no necesita saber quiénes son sus observadores. Cualquier número de observadores puede suscribirse y recibir notificaciones.

*/

/**

* Asunto

* Interfaz de destino

*/

interfaz pública Asunto {

public void addObserver(Observador o

public void deletObserver(Observador o

public void Notice()); ;

}

//Observador java

paquete youngmaster modelo Observador

/**

* @author youngmaster

* @E mail: young * @version myEclipse

* @create time mañana: :

*/

/**

* Interfaz de observador

*/

interfaz pública Observador {

actualización pública vacía ();

}

// Profesor java

paquete youngmaster model Observer

importar java util Vector

;

/**

* @author youngmaster

* @E mail:young * @version myEclipse

* @create time mañana : :

*/

/**

* Implementación de la interfaz de destino

*/

clase pública El profesor implementa el Asunto {

teléfono de cadena privada

@SuppressWarnings (sin marcar)

estudiantes de Vector privado

@SuppressWarnings (sin marcar)

profesor público() {

teléfono = ;

estudiantes = nuevo vector();

}

@SuppressWarnings( sin marcar)

@Override

public void addObserver(Observador o) {

estudiantes agregan(o); >

@ Anular

public void deletObserver(Observador o) {

estudiantes remove(o); Anular

aviso de vacío público() {

for (int i = ; i lt; tamaño de los estudiantes(); i ) { ((Observador) los estudiantes obtienen (i)) actualización(); }

}

public void setPhone(String phone) {

este teléfono = teléfono

aviso()

}

public String getPhone() {

devolver teléfono

}

}

}

// Estudiante java

paquete youngmaster modelo Observer

/**

* @author youngmaster

* @E mail: young * @version myEclipse

* @create time mañana: :

*/

/**

* Implementación de la interfaz de Observer

*/

clase pública Estudiante implementa Observer {

nombre de cadena privada

teléfono de cadena privada; ;

profesor profesor privado;

estudiante público (nombre de cadena profesor profesor) { este nombre = nombre este profesor = profesor

}

public void show() {

Sistema fuera println( Nombre: nombre \nTeléfono del profesor: teléfono

}

@Override

public void update() {

teléfono = profesor getPhone();

}

}

// Cliente java

paquete youngmaster model Observer

import java util Vector

/**

* @author youngmaster

* @E mail: young * @version myEclipse

* @create time mañana: :

*/

/**

* Clase de prueba

*/

clase pública Cliente {

/**

* @param args

*/

@Suppre

ssWarnings( sin marcar )

public static void main(String[] args) {

Vector estudiantes = new Vector()

profesor profesor = nuevo profesor( );

for (int i = ; i lt; ; i ) {

estudiantes estudiante = nuevo Estudiante(estudiante i profesor); estudiantes agregar(estudiante profesor addObserver);

}

setPhone del profesor( );

for (int i = ; i lt; ; i )

(( Estudiante) los estudiantes obtienen(i)) show();

Sistema fuera println(\n========================= = ===\n );

setPhone del profesor( );

for (int i = ; i lt; ; i )

((Estudiante) los estudiantes obtienen(i)) show();

} lishixinzhi/Article/program/Java/gj/201311/27566