美文网首页
2018-06-13 设计模式 观察者

2018-06-13 设计模式 观察者

作者: 忙于未来的民工 | 来源:发表于2018-06-13 18:29 被阅读0次

观察者模式分为两个对象订阅者和发布者,订阅者可以有多个,原理就是发布者将订阅者的对象指针保存下来,如果有消息了需要通知了,那么发布者遍历订阅者的对象,然后分别调用他们的方法,将值传过去.

例子:

// 创建发布者

function Publisher(){

var observice = [] // 发布者内部定义一个属性,用于存储订阅者对象的指针

}

Publisher.prototype.add = function (observice) { // 发布者定义一个方法向自身的属性中添加订阅者

var flag = false

this.observice.map(function (item) {

if (item === observice) {

flag = true

}

})

if (!flag) {

this.observice.push(observice)

}

}

Publisher.prototype.send = function (state) { // 发布者发布消息

this.observice.map(function (item) {

item.update(item)

})

return this

}

而对于订阅者来说,只需要实现update方法即可,例子如下:

function Subscriber(){}

Subscriber.prototype.update = function (event) {}

使用如下:

var p = new Publisher()

var s1 = new Subscriber()

s1.update = function () {} // 根据需要重写update方法

p.add(s1) // 将s1添加到发布者的存储列表中

s1.send('发布了') // 调用发送方法

相关文章

  • 观察者设计模式

    每周学点Java设计模式__观察者设计模式 本次继续更新java23中设计模式之一——观察者模式。 观察者模式(有...

  • 设计模式02-观察者者设计模式

    [toc] 设计模式02-观察者者设计模式 主要来源Head First设计模式(书)观察者设计模式是JDK中使用...

  • RxJava基础—观察者模式

    设计模式-观察者模式 观察者模式:观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式...

  • RxJava设计模式与原理

    标准观察者设计模式 RxJava是一种特殊的观察者模式,首先我们先来看标准的观察者设计模式。在标准观察者模式中,存...

  • 11.9设计模式-观察者模式-详解

    设计模式-观察者模式 观察者模式详解 观察者模式在android中的实际运用 1.观察者模式详解 2.观察者模式在...

  • Guava源码分析——EventBus

    EventBus的设计理念是基于观察者模式的,可以参考设计模式(1)—观察者模式先来了解该设计模式。 1、程序示例...

  • Android LifeCycle 源码学习总结

    整体设计 Lifecycle的核心设计模式就是观察者模式。 LifeCycleOwner 是被观察者,Lifecy...

  • PHP设计模式之观察者模式

    PHP设计模式之观察者模式

  • 设计模式 - 观察者模式

    观察者模式的定义 观察者模式简述 MVC是由各种复杂的设计模式组合而成的复合结构,观察者是其中的设计模式之一。视图...

  • 面試小記

    1:设计模式 观察者模式observer observerble,subscribe (订阅) (1)观察者对象 ...

网友评论

      本文标题:2018-06-13 设计模式 观察者

      本文链接:https://www.haomeiwen.com/subject/hbxseftx.html