JS设计模式之工厂方法模式


通过对产品类的抽象使其创建爱你业务主要负责用于创建多类产品的实例

安全模式类

安全模式类式防止忽略new关键字时造成的错误

var Demo = function (){
  	if (!(this instanceof Demo)){
  		return new Demo()
    }
  }
  Demo.prototype = {
  	show:function (){
		  console.log('成功获取')
    }
  }
  var d = Demo();
  d.show();

安全的工厂方法

	// 安全模式创建类的工厂
	var Factory = function (type, content) {
		if (this instanceof Factory) {
			var s = new this[type](content);
			return s
		} else {
			return new Factory(type, content);
		}
	}

	// 工厂原型中设置创建所有类型数据对象的基类
  Factory.prototype = {
		Java: function (content){

    },
    UI:function (content) {
			this.content = content
      (function (content){
      	var div = document.createElement('div');
      	div.innerHTML = content
        //.....
      })(content)
    },
    //....
  }

  var data = [
    {type:'JavaScript',content:'js'},
    {type:'JavaScript',content:'js'},
    {type:'JavaScript',content:'js'}
  ]
	for (let i = 0; i < data.length; i++) {
    Factory(data[i].type, data[i].content)
	}

记录
对于创建多类对象,之前的简单工厂模式就不大适用了。
通过工厂方法模式我们可以轻松创建多个类的实例对象,这样的工厂方法对象在创建对象的方法也避免了使用者与对象类之间的耦合,用户不必关心创建该对象的具体类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值