美文网首页
设计模式

设计模式

作者: Jetsly | 来源:发表于2017-02-06 14:30 被阅读16次

    1. 单例模式

    每次实例化后的对象都一样new Singleton===new Singleton=>true

    ES5

    function Singleton(){
        // 判断是否存在实例
        if (typeof Singleton.instance === 'object') {
            return Singleton.instance;
        }
        // 缓存
        Singleton.instance = this;
    }
    

    ES6

    class Singleton{
        static instance 
        constructor(){
            if(typeof Singleton.instance==='object'){
                return Singleton.instance
            }
            Singleton.instance=this;
        }
    }
    

    2. 构造函数模式

    构造函数当成普通函数使用来实现 Person(123) instanceof Person=>true,不过方法最好写在原型链上,
    当有大批量的实例的话,可以共享资源,就会节约很多内存

    ES5

    function Person(age){
         if (!(this instanceof Person)) {
            return new Person(age);
        }
        this.age = age;
    }
    

    ES6

    class Person{
        constructor(){
    
        }
    }
    

    ES6中,会抛出异常Cannot call a class as a function

    3. 职责链模式

    从第一个对象开始,链中收到请求的对象亲自处理它,然后处理完毕后转发给链中的下一个处理者

    class Handle{
        constructor(func,handle){
            this._func=func;
            this._next=handle;
        }
        invoke(){
            (this._func||(()=>{}))()
            if(this._next) this._next.invoke()
        }
    }
    
    待续。。。。

    参考链接

    相关文章

      网友评论

          本文标题:设计模式

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