工厂方法模式

1.工厂方法模式

将实际创建对象工作推迟到子类中,在js中将工厂方法看作一个实例化对象的工厂类,将构造对象的构造函数放在工厂方法类的原型中即可。

'use strict';

(function(){

    //安全模式创建的工厂类
    function Factory(type,content){
        if(!(this instanceof Factory)){
            //构造函数中可以调用相应原型方法
            return new Factory(type,content);
        }
        
        //构造函数返回一个对象就会创建这个对象
        return new this[type](content);   
    }

    Factory.prototype={
        A: function(){
            this.name='red';
        },

        B: function(){
            this.name='green';
        }
    }

    var a=Factory('A');
    console.log(a.name);

})();

工厂方法模式可以创建多个类的实例对象,这种创建对象的方式避免了使用者和对象类之间的耦合,用户不用关心

你可能感兴趣的:(工厂方法模式)