观察者模式设计模式
1创建被监听者对象和被监听者的行为
public class HanFeiZi {
/**
* 韩非子的吃饭的操作 ,李斯监听得到,触发李斯的相关操作
*/
public void haveFun(){
System.out.println("韩非子自己的出门动作");
this.notifyAllUser("号外:韩非出门了...");
}
// 观察者 李斯...多个观察者
private ArrayList
public void addUser(Observer observer){
this.oberverList.add(observer);
}
public void removeUser(Observer observer){
this.oberverList.remove(observer);
}
/**
* 通知全部的观察者 被观察者所作的事情
*/
public void notifyAllUser(String con){
for(Observer observer : oberverList){
observer.observerUserUpdate(con);
}
}
}
2 观察者监听到后,执行的方法动作接口
/**
- 观察者的接口
*/
public interface Observer {
public void observerUserUpdate(String con);
}
3 观察者对象 实现观察者的动作
public class Lisi implements Observer{
@Override
public void observerUserUpdate(String con) {
System.out.println("李斯监听得到韩非的动作:"+con);
}
}
4测试类方法
public class DemoTest01 {
public static void main(String[] args) {
// 观察者
Observer observer = new Lisi();
// 被观察者,被监听者
HanFeiZi hanFeiZi = new HanFeiZi();
// 加载观察者
hanFeiZi.addUser(observer);
// 被监听者动作了
hanFeiZi.haveFun();
}
}