java设计模式-观察者模式(广播机制,消息订阅) 约定不等于承诺〃 2022-08-22 13:19 193阅读 0赞 什么叫观察者模式: 观察者模式是广播机制,消息订阅和推送的核心设计。 开发中常见的场景: 1.手机中消息推送 2.后台群发信息 观察者模式例子(自己实现) 首先是定义观察者接口并使用三个子类实现 /** * 观察者接口 * * @author liuxg * @date 2016年5月27日 下午10:15:30 */ public interface IObserver { public void process(); } class Observer1 implements IObserver { @Override public void process() { System.out.println("Observer1执行动作"); } } class Observer2 implements IObserver { @Override public void process() { System.out.println("Observer2执行动作"); } } class Observer3 implements IObserver { @Override public void process() { System.out.println("Observer3执行动作"); } } 再定义主题,观察者若想获得消息,必须先注册 /** * * @author liuxg * @date 2016年5月27日 下午10:12:18 */ public class Subject { List<IObserver> list = new ArrayList<IObserver>(); /*** * 注册观察者 * @param observer */ public void registerObserver(IObserver observer){ list.add(observer); } /** * 广播消息 */ public void send(){ for (IObserver observer : list) { observer.process(); } } } 客户端这样子,我们这样子使用 public class Client01 { public static void main(String[] args) { IObserver observer1 = new Observer1(); IObserver observer2 = new Observer2(); IObserver observer3 = new Observer3(); Subject subject = new Subject(); subject.registerObserver(observer1); subject.registerObserver(observer2); subject.registerObserver(observer3); subject.send(); } } 接下来我们利用jdk的api来实现观察者模式 观察者模式例子(jdk api) /** * 实现观察者 * @author liuxg * @date 2016年5月28日 下午7:11:43 */ public class MyObserver implements Observer { @Override public void update(Observable o, Object arg) { int state = ((ConcreteSubject)o).getState(); System.out.println("state = " + state); } } 接下来我们来实现主题信息 /** * 继承jdk的Observable来实现主题信息 * @author liuxg * @date 2016年5月28日 下午7:10:52 */ public class ConcreteSubject extends Observable{ private int state ; public void set(int state) { //状态切换,广播信息 this.state = state; setChanged(); notifyObservers(); } public int getState() { return state; } public void setState(int state) { this.state = state; } } 客户端测试,可以这样子 public class Client02 { public static void main(String[] args) { ConcreteSubject obj = new ConcreteSubject(); MyObserver observer = new MyObserver(); obj.addObserver(observer); obj.set(123); } }
相关 java设计模式--观察者(发布订阅) *1、概述: ** 观察者模式又称“发布订阅模式”定义一种一对多的依赖关系,让多个观察者对象同时监视着被观察者的状态,当被观察者的状态发送变... 旧城等待,/ 2024年04月17日 20:15/ 0 赞/ 81 阅读
相关 【JavaScript 设计模式】观察者模式与发布订阅模式 JavaScript 设计模式系列文章: [设计模式总览][Link 1] [工厂模式][Link 2] [单例模式][Link 3] [观察者模式/ Bertha 。/ 2022年12月04日 07:58/ 0 赞/ 231 阅读
相关 java 观察者设计模式_Java设计模式之【观察者设计模式】言简意赅 观察者设计模式,是java23种设计模式中比较经典也是比较常用之一。好多产品与优秀的技术框架多多少少都用到了观察者设计模式。 设计模式的出现,是为了阐述一种编程和设计思想。使 怼烎@/ 2022年11月03日 05:57/ 0 赞/ 236 阅读
相关 java设计模式-观察者模式(广播机制,消息订阅) 什么叫观察者模式: 观察者模式是广播机制,消息订阅和推送的核心设计。 开发中常见的场景: 1.手机中消息推送 2.后台群发信息 观察者模式例子(自己实现) 约定不等于承诺〃/ 2022年08月22日 13:19/ 0 赞/ 194 阅读
相关 java笔记--设计模式之观察者(订阅/发布)模式 1.定义 定义对象间的一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 野性酷女/ 2022年08月19日 09:00/ 0 赞/ 203 阅读
相关 js 订阅者模式(观察者模式) 原文网址:http://www.cnblogs.com/LuckyWinty/p/5796190.html [附加题] 请实现下面的自定义事件 Event 对 悠悠/ 2022年07月15日 13:15/ 0 赞/ 194 阅读
相关 观察者模式(发布-订阅者模式) 观察者模式定义了一种依赖关系,解决了主体对象和观察者之间功能的耦合,主要应用于大型项目的模块化开发中,解决团队开发中模块之间的通信问题,利用观察者模式还可以实现自定义事件。 素颜马尾好姑娘i/ 2022年05月22日 06:00/ 0 赞/ 217 阅读
相关 设计模式之观察者模式(发布订阅模式) 说明:本文参照《大话设计模式》中的案例做简要解析 观察者模式: 又叫发布-订阅模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 深藏阁楼爱情的钟/ 2022年05月21日 10:39/ 0 赞/ 267 阅读
相关 发布订阅模式(观察者模式) 设计模式的目的就是使类成为可复用的组件。 在观察者模式中观察者接口只注重被观察者,而被观察者接口只注重观察者,具体是观察者接口实现类中的哪一个并不在意,而被观察者也是如此。这 清疚/ 2021年12月15日 00:27/ 0 赞/ 293 阅读
还没有评论,来说两句吧...