La Red de Conocimientos Pedagógicos - Currículum vitae - patrón de diseño java Patrón observador (Observador)

patrón de diseño java Patrón observador (Observador)

//Asunto java

paquete youngmaster modelo Observer

/**

* @author youngmaster

* @E mail:young * @version myEclipse

* @create time AM: :

*/

/* *

* El patrón observador es un patrón de comportamiento, y su intención es definir una relación de dependencia de uno a muchos entre objetos

* Cuando el estado de un objeto cambia, todos dependencias Sus objetos se notifican y actualizan automáticamente

* Existe un efecto secundario común de dividir un sistema en una serie de clases cooperativas en el proceso de creación del sistema

* La necesidad de mantener la coherencia relacionada entre objetos No queremos acoplar estrechamente varios tipos para mantener la coherencia

* porque esto reduce su disponibilidad. Los objetos clave de este patrón son el objetivo (Sujeto) y el observador (Observador). )

* Un objetivo puede tener cualquier número de observadores que dependan de él. Una vez que el estado del objetivo cambia, se notifica a todos los observadores

* 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. No necesita saber quién es y cuándo. él envía la notificación. Los observadores pueden hacer que los observadores de datos arbitrarios se suscriban y reciban notificaciones

 */

  /**

 * asunto

 * Interfaz de destino

*/

interfaz pública Asunto {

public void addObserver(Observador o

public void deletObserver( Observador o );

aviso vacío público ();

}

//Observador java

modelo youngmaster Observador

 /**

 * @author youngmaster

 * @E mail:young * @version myEclipse

 * @create time AM: :

 */

 /**

 *Interfaz del observador

 */

 interfaz pública Observador {

p>

public void update();

}

//Profesor java

paquete youngmaster model Observer

importar java util Vector

 /**

 * @author youngmaster

 * @E mail:young * @version myEclipse

 * @create hora mañana:

*/

/**

*Implementación de la interfaz de destino

* /

> profesor de clase pública implementa Asunto {

teléfono de cadena privada

@SuppressWarnings (sin marcar)

estudiantes de vector privado

@SuppressWarnings; (sin marcar)

public Teacher() {

teléfono =

estudiantes = new Vector()

}

@SuppressWarnings( sin marcar )

@Override

public void addObserver(Observador o) {

estudiantes agregan

;

 }

@Override

public void eliminarObservador(Observador o) {

estudiantes eliminar

}

@Override

aviso de anulación pública() {

for (int i = ; i < tamaño de los estudiantes(); i++) { ((Observador) los estudiantes obtienen (i)) actualizar();

}

}

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 AM: :

*/

/**

 *Implementación de la interfaz del observador

 */

 clase pública El estudiante implementa el observador {

 nombre de cadena privada

p>

teléfono de cadena privada;

profesor privado maestro;

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

 }

public void show() {

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

);

}

@Override

actualización de vacío público()

{

teléfono = profesor getPhone();

}

}

//Paquete cliente java

observador del modelo youngmaster

importar java util Vector

/**

* @author youngmaster

* @E mail:young * @version myEclipse

* @create hora mañana: :

*/

/**

*Clase de prueba

*/

cliente de clase pública {

/**

* @param args

*/

@SuppressWarnings( sin marcar )

public static void main(String[] args) {

Vector estudiantes = new Vector()

Profesor; profesor = nuevo Profesor();

for (int i = ; i < ; i++) {

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

}

profesor setPhone(

for (int i = ; i < ; i++)

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

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

setPhone del profesor(

for (int i = ; i < ; i++)

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

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