观察者模式示例
2016-11-10 17:16
183 查看
public class FirstTeam implements NotifyListener { @Override public void notifyTeam(String msg) { System.out.println("第一组得到消息:" + msg); System.out.println("第一组不打牌了,开始工作了!!!"); } }
public class SecondTeam implements NotifyListener{ @Override public void notifyTeam(String msg) { System.out.println("第二组得到消息:"+msg); System.out.println("第二组不看视频,开始工作了!!!"); } }
public class ThirdTeam implements NotifyListener{ @Override public void notifyTeam(String msg) { System.out.println("第三组得到消息:"+msg); System.out.println("第三组不嗑瓜子了,开始工作了!!!"); } }
public interface NotifyListener { void notifyTeam(String msg); }
public class Manager { //把要求去观察的对象存放到一个容器当中 List<NotifyListener>list = new ArrayList<>(); //保证观察者观察到的对象是统一 private static Manager manager = new Manager(); public static Manager getTeacher(){ return manager; } //获取观察者集合 public List<NotifyListener> getNotifys(){ return list; } //注册用户 public void registerUser(NotifyListener listener){ list.add(listener); } //移除用户 public void removeUser(NotifyListener listener){ list.remove(listener); } public void come(){ for (NotifyListener listener : list) { listener.notifyTeam("主管气势汹汹的来了"); } } }
public class Test { public static void main(String[] args) { FirstTeam ft = new FirstTeam(); SecondTeam st = new SecondTeam(); //获取被观察者 Manager manager = Manager.getTeacher(); manager.registerUser(ft); manager.registerUser(st); manager.come(); } }
相关文章推荐
- Java设计模式:单态模式,工厂模式,代理模式,观察者模式示例
- 观察者模式-示例
- scala实现观察者模式示例
- 观察者模式的java代码示例
- Python设计模式之观察者模式简单示例
- 设计模式示例四 Observer(观察者)和Iterator(迭代器)
- PHP设计模式之观察者模式定义与用法示例
- JAVA设计模式示例-3 观察者模式
- c++观察者模式代码示例
- PHP观察者模式示例【Laravel框架中有用到】
- 《GOF设计模式》—中介者 (MEDIATOR)—Delphi源码示例:Colleague—Mediator通信(使用观察者模式)
- OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
- 观察者模式的一个示例
- 观察者设计模式示例
- Python程序中的观察者模式结构编写示例
- 观察者模式-示例
- OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
- OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
- C#设计模式之Observer观察者模式解决牛顿童鞋成绩问题示例
- JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例