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 pública Asunto {
public void addObserver(Observador o
public void deletObserver( Observador o );
aviso vacío público ();
}
//Observador java
modelo youngmaster Observador ; p>
/**
* @author youngmaster
* @E mail:young * @version myEclipse
* @create time AM: : p>
*/
/**
*Interfaz del observador
*/
interfaz pública Observador {
p>
public void update();
}
//Profesor java
paquete youngmaster model Observer ; p>
importar java util Vector
/**
* @author youngmaster
* @E mail:young * @version myEclipse p>
* @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