美文网首页
常用设计模式

常用设计模式

作者: 8d2855a6c5d0 | 来源:发表于2017-08-24 08:59 被阅读0次

1.构造函数

function Person(name, age) {
    this.name = name;
    this.age = age;
}
Person.prototype.sayName = function() {
    return this.name;
};
var student = new Person('小白', 23);

2.工厂模式 factory

function createPerson(name) {
    var person = {
        name: name,
        sayName: function() {
            console.log(this.name);
        }
    }
    return person;
}
createPerson('xiaobai');

3.单例模式 singleton

var People = (function() {
    var instance;

    function init(name) {
        return {
            name: name
        }
    }
    return {
        createPeople: function(name) {
            //注意这里啊
            if (!instance) {
                instance = init(name);
            }
            return instance;
        }
    }
})();
People.createPeople('jirengu'); //{name:'jirengu'}
People.createPeople('hello'); //{name:'jirengu'}
//打印出来的都是同一个对象

匿名函数 ==>lambda
单例只返回一个对象也就一个引用,举例:对话框
词法作用域:函数的执行上下文就是函数定义的地方。

4.混合模式 mixin(继承)

function Person(name,age) {
        this.name = name;
        this.age = age;
    }
    Person.prototype.sayName = function () {
        console.log(this.name);  
    };

    function Man(name,age,sex) {
        Person.call(this,name,age);
        this.sex =sex;
    }
    
    var F = function () {};
    F.prototype = Person.prototype;
    Man.prototype = new person();

    Man.prototype.saySex = function () {
        console.log(this.sex);
    };

5.模块模式

var Person = (function() {
    var name = 'rouyu';

    function sayName(name) {
        console.log(name);
    }
    return {
        name: name,
        sayName: sayName
    }
})();

6. 订阅发布模式

var EventCenter = (function() {
    var events = {};

    function on(event, handle) {
        events[event] = events[event] || [];
        events[event].push({
            handler: handler
        })
    }

    function fire(event, arges) {
        if (!events[event]) {
            return
        }
        for (var i = 0; i < events[event].length; i++) {
            events[event][i].handler(args);
        }
    }

    function off(name) {
        delete events[name];
    }

    return {
        on: on,
        fire: fire,
        //取消事件
        off: off
    }

})();

订阅发布例子

相关文章

  • Java 常用设计模式简例

    简述Java常用设计模式 简述Java常用设计模式及设计原则 strate---------策略模式针对接口编程,...

  • java单例模式与线程安全

    设计模式在软件架构设计中被经常使用,掌握常用的设计模式对于设计软件系统非常重要。单例模式作为设计模式中最简单和常用...

  • 知识复盘

    1:熟练使用Android常用性能调优 2:Java常用设计模式 3:Android常用设计模式(架构) 4:An...

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 常用设计模式介绍

    常用设计模式介绍

  • 工厂模式

    安卓常用的设计模式 工厂模式(Factory Pattern)是 Android中最常用的设计模式之一。这种类型的...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 设计模式

    软件开发中常用设计模式和设计原则有哪些? ##设计模式: * 1、简单工厂模式(Factory) * 2、策略模式...

  • C++常用设计模式

    C++常用设计模式。

  • Strategy(策略) - java 源码中的策略模式

    标签(空格分隔): 设计模式 前言 Strategy(策略)设计模式是设计架构时候常用到的设计模式之一。我们开发中...

网友评论

      本文标题:常用设计模式

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