package com.cheng.zenofdesignpatterns.patterns.observer.monitor; import java.util.ArrayList; /** * 韩非子,李斯的师弟,韩国的重要人物 */ public class HanFeiZi1 implements MonitorObservable,IHanFeiZi1 { // 定义个变长数组,存放所有的观察者 private ArrayList<MonitorObserver> observerList = new ArrayList<MonitorObserver>(); // 增加观察者 public void addObserver(MonitorObserver observer){ this.observerList.add(observer); } // 删除观察者 public void deleteObserver(MonitorObserver observer){ this.observerList.remove(observer); } // 通知所有的观察者 public void notifyObservers(String context){ for(MonitorObserver observer:observerList){ observer.update(context); } } // 韩非子要吃饭了 public void haveBreakfast(){ System.out.println("韩非子:开始吃饭了..."); // 通知所有的观察者 this.notifyObservers("韩非子在吃饭"); } // 韩非子开始娱乐了,古代人没啥娱乐,你能想到的就那么多 public void haveFun(){ System.out.println("韩非子:开始娱乐了..."); this.notifyObservers("韩非子在娱乐"); } }