• 发布-订阅模式


      接着学习《JavaScript设计模式与开发实践》一书。

      书中用售楼处发给订阅者楼房信息短信的例子,说明了发布-订阅模式。一个发布-订阅模式,总结来说,由以下几条:

      1.首先要指定好谁充当发布者,比如售楼处;

      2.然后给发布者添加一个缓存列表,用于存放回调函数以便通知订阅者;

      3.最后发布消息的时候,发布者会遍历这个缓存列表,依次触发里面存放的订阅者回调函数。

      

        var salesOffices = {};
        salesOffices.clientList = [];
        salesOffices.listen = function (fn) {
            this.clientList.push(fn);
        };
        salesOffices.trigger = function () {
            for (var i = 0, fn; fn = this.clientList[i++];) {
                fn.apply(this, arguments);
            }
        };

       对多态的再次理解。

      多态:同一操作作用于不同的对象上面,可以产生不同的解释和不同的执行结果。

      要实现对象的多态性,就要把不变的部分分隔出来,然后把可变的部分各自封装起来。以鸡鸭发声的那个例子讲,首先我们把不变的部分隔离出来,那就是所用的动物都会发出叫声:

            var makeSound = function (animal) {
                animal.sound();
            };

    然后把可变的部分各自封装起来,我们刚才提到的多态性实际指的是对象的多态性:

            var Duck = function () {};
            Duck.prototype.sound = function () {
                console.log('嘎嘎嘎');
            };
    
            var Chicken = function () {};
            Chicken.prototype.sound = function () {
                console.log('咯咯咯');
            };
            makeSound(new Duck());
            makeSound(new Chicken());
  • 相关阅读:
    HTML & CSS
    Python面向对象编程
    Python 内置函数
    Python函数
    三.python高级
    使用loadrunner编写webservice接口请求
    loadrunner中JavaVuser脚本的编写
    loadrunner 参数化取值方式详解
    loadrunner 参数化-如何从数据库中取数据-连接数据库进行参数化
    vmstat命令参数介绍
  • 原文地址:https://www.cnblogs.com/zhansu/p/6596574.html
Copyright © 2020-2023  润新知