美文网首页
Observable学习

Observable学习

作者: 星月西 | 来源:发表于2021-09-28 21:04 被阅读0次

    1. 观察者模式

    定义

    • 又叫发布订阅模式
    • 一种一对多的关系
    • 让多个观察者对象(observer)同时监听某一个主题对象(subject),这个主题对象的状态发生变化时就会通知所有的观察者对象,使它们能够自动更新自己

    优缺点

    优点:

    • 支持简单的广播通信,自动通知所有已经订阅过的对象
    • 模块之间解耦

    缺点:

    • 所有观察者都通知到会花费很多时间,如订阅redux的组件
    • 观察者和主题之间有循环依赖,会导致循环调用

    注意:
    在观察者模式中,通常情况下调用注册观察者后,会返回一个函数,用于移除监听

    2. 迭代器模式

    定义

    • 又叫游标模式
    • 提供一种方法顺序访问一个聚合对象中的每个元素,而又不需要暴露该对象的内部表示

    优缺点

    优点:

    • 简化了遍历方式,对于hash表来说,支持迭代器模式后,遍历方便,如Map的for of迭代
    • 封装性良好,用户只需要得到迭代器就可以遍历,而不用去关系遍历算法

    缺点:

    • 遍历过程是一个单向且不可逆的遍历

    示例

    let arr = ['a', 'b', 'c'];
    let iter = arr[Symbol.iterator]();
    iter.next();
    // {value: 'a', done: false}
    

    相关文章

      网友评论

          本文标题:Observable学习

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