美文网首页
23,观察者模式 vs 发布-订阅模式

23,观察者模式 vs 发布-订阅模式

作者: r8HZGEmq | 来源:发表于2019-11-22 11:01 被阅读0次
    一,观察者模式,举例:你想入职某牛逼公司,在NB公司的HR那里留了电话,他们有岗位空缺了就会打电话给你。你们彼此都知道对方的存在。当然,先入职NB的不止你一个! event会触发notify。同步

    二,发布订阅者模式。是由观察者模式衍生而来。多了一个中间层


    发布者和订阅者彼此不知道对方的存在。异步
    三,两者的差别总结
    观察者 VS 发布-订阅者

    所以两者之间的差异在于

    console.log("观察者模式 vs 发布-订阅者模式")
    1,观察者模式,彼此知道对方。而订阅者不知道,他们通过中间渠道通信
    2,观察者模式,组件是紧凑的。而订阅者模式中,组件松散耦合
    3,观察者模式,事件触发同步。而订阅者模式中,消息队列异步
    4,观察者模式,在单个应用中。而订阅者模式中,更像交叉应用模式
    
    举例:加深印象
    观察者模式:个体奶农和个人的关系。
    奶农统计有多少人订了产品,
    所以个人都有一个相同拿牛奶的方法。
    奶农有新奶了就负责调用这个方法。
    -----
    发布-订阅模式:报社, 邮局和个人。
    报纸的订阅和分发是由邮局来完成的。
    报社只负责将报纸发送给邮局。
    

    四,应用场景:
    在「一对多」的场景下,发布者的某次更新只想通知它的部分订阅者?
    在「多对一」或者「多对多」场景下。一个订阅者依赖于多个发布者,某个发布者更新后是否需要通知订阅者?还是等所有发布者都更新完毕再通知订阅者?
    这些逻辑都可以放到EventChannel里。

    所以,发布订阅者模式,适合更负责的业务逻辑中
    

    相关文章

      网友评论

          本文标题:23,观察者模式 vs 发布-订阅模式

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