观察者模式设计模式

1创建被监听者对象和被监听者的行为
public class HanFeiZi {
/**
* 韩非子的吃饭的操作 ,李斯监听得到,触发李斯的相关操作
*/
public void haveFun(){
System.out.println("韩非子自己的出门动作");
this.notifyAllUser("号外:韩非出门了...");

}

// 观察者 李斯...多个观察者
private ArrayList oberverList = new 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();

}

}

posted @ 2022-09-21 10:37  向上生长6688  阅读(21)  评论(0编辑  收藏  举报