美文网首页
工厂模式

工厂模式

作者: 阿九是只大胖喵 | 来源:发表于2017-02-28 09:55 被阅读0次

    使用单例模式的局限性,就是每次创建一个对象,里面的属性都会重复定义。

        var jsPerson1 = {
            name: 'zhangsan',
            age: 48,
            writeJs: function () {
                console.log('my name is ' + this.name + ', age is ' + this.age);
            }
        };
        jsPerson1.writeJs();
    
        var jsPerson2 = { /* 重复定义部分 */};
    

    单例模式虽然解决了分组的作用,但是不能实现批量的生产,属于手工作业模式,这就引出了"工厂模式"
    把实现同一件事情的相同的代码,放到一个函数中,以后如果再想实现这个功能,就不需要重新的编写这些代码了,只需要执行当前的函数即可 --> "函数的封装" --> "低耦合高内聚": 减少页面中的冗余代码,提高代码的重复利用率。

        function createJsPerson(name, age) {
            var obj = {};
            obj.name = name;
            obj.age = age;
            obj.writeJs = function () {
                console.log('my name is ' + this.name + ', age is ' + this.age);
            }
            return obj;
        }
    
        var p1 = createJsPerson('zhangsan', 48);
        p1.writeJs();
        var p2 = createJsPerson('lisi', 20);
        p2.writeJs();
    

    JavaScript中不存在重载,如果方法名一样,后面的会把前面的覆盖,最后只保留一个。
    JavaScript中有一个操作类似重载但不是重载: 可以根据传递参数的不一样,实现不同的功能。

        function sum(num) {
            if (typeof num === 'undefined') {
                return 0;
            }
            return num;
        }
        sum(100);
        sum();
    

    相关文章

      网友评论

          本文标题:工厂模式

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