设计模式

125 阅读1分钟

单例模式

  1. 确保这个类只有一个实例,并且自动实例化并向整个系统提供这个实例.

解释: 构造函数是静态的,并且有一个当前类的静态成员变量,我们要提供一个静态方法给外面一个实例,实例化只能放到内部进行实例.

作用是确保一个只有一个实例的存在

比如:web页面的计数器序列化生成器等都可以使用单例模式 2. 缺点会改变作用域中的变量值,所以在其他地方使用该类的时候,状态会随时被修改,所以一般用于工具类的形式进行提供,无状态的类 3.

    function a(){
        var o = new Object();
        o.jishu = function() {
            console.log('我是单例模式')
        }
        return o
    }
    var aa = aa()
    aa.jishu()

简单工厂模式

又称为静态工厂方法模式,它属于类创建型模式,可以根据不同的参数返回不同类的实例,简单的工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类.

优点 1.程序员不用关心怎么创建的,只关心怎么使用 缺点 2.就是比较死,不够灵活,新增一个产品的话就会麻烦.

    function Person(name) {
        if(name == 'a') {
            return new Array()
        }else {
            retrun new Number()
        }
    }
    

工厂模式

  1. 新增产品就开一个子工厂, 大工厂只提供方法, 是因为面向对象程序设计中,有一个重要的原则是开闭原则,开闭原则规定程序对于扩展是开放的,对于又该是封闭的.