一、引言 在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。 二、 观察者模式的介绍 2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端, ...
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。
分类:
编程语言 时间:
2020-03-13 22:17:37
阅读次数:
70
设计模式分为三种类型,共23种 1. 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。 2. 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 3. 行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式 ...
分类:
其他好文 时间:
2020-03-13 18:45:27
阅读次数:
57
一、概述 EventBus是一个基于观察者模式的发布/订阅事件总线框架。将事件的发送者和接收者分开,其可以简化组件之间的通讯,相对于BroadcastReceiver其更轻量级也更易用。 二、用法介绍 EventBus的用法非常的简单,大致上就四步: 1.注册事件 @Override protect ...
分类:
其他好文 时间:
2020-03-11 01:12:04
阅读次数:
120
生活中我们经常遇到观察者模式的案例。 例如,我们去商场购物,注册了一家店的会员,一旦这家店有活动,你的手机就会收到一些推送消息,是不是? 在例如,我们看某个电视台的节目,这个电视台放什么节目我们就会看到什么节目。 这些都是典型的生产者与消费者的案例。 所谓的观察者模式,定义了一种一对多的依赖关系,能 ...
分类:
编程语言 时间:
2020-03-10 11:50:05
阅读次数:
87
一、观察者模式的定义与特点 1、定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新 注:简单地说,主题 + 观察者 = 观察者模式 或者 出版者 + 订阅者 = 观察者模式 2、优点: 松耦合设计,降低了对象之间的依赖; 目标与观察者之间建立了一套 ...
分类:
其他好文 时间:
2020-03-09 13:37:54
阅读次数:
49
一、概述 1、观察者模式:(Observer Pattern) 2、使用场景:订阅消息与发布消息是最好的观察者模式,观察者模式使用比较频繁。 3、角色: A、Subject:主题,绑定观察者。 B、Observer:观察者角色 C、Client:使用场景。 二、例子 模拟微信中订阅一个主题,主题发布 ...
分类:
其他好文 时间:
2020-03-04 00:21:57
阅读次数:
76
Vue组件通信 父传子 prop 自定义属性,将父亲的数据传给儿子 1. 在组件标签上使用自定属性 2. 在组件内部通过props来接收自定义属性 3. 子组件接收后既可以在组件里直接使用,不过只能用不能改 <wiz_code_mirror> //父组件 <body> <div id='app1'> ...
分类:
其他好文 时间:
2020-03-01 09:16:53
阅读次数:
78
主要角色 1. 抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。 2. 具体主题(Concrete Subject)角色:也叫具体目标类,它实现抽象目标中的通知方法,当具体主题的内部状态发生改变时,通知 ...
分类:
其他好文 时间:
2020-02-28 15:33:29
阅读次数:
67
0x00 介绍先简单介绍一下这个库,Rx的一系列实现都是为了解决同一个问题,就是让异步编程变的更加简单。它的主要思想是使用观察者模式,分离了数据源和数据的使用者,同时它拓展了观察者模式,将数据源中的数据抽象成数据流,在此之上,通过操作符来处理流中的数据,具有非常好的拓展性。RxJava/RxAndr... ...
分类:
编程语言 时间:
2020-02-28 11:51:17
阅读次数:
73