深入理解对象 工厂模式

1.JavaScript工厂模式

虽然使用 Object 构造函数或对象字面量可以方便地创建对象,但这些方式也有明显不足:创建具有同样接口的多个对象需要重复编写很多代码。

1.1.什么是工厂模式?

工厂模式是一种众所周知的设计模式,广泛应用于软件工程领域,用于抽象创建特定对象的过程。工厂模式是一种创建型模式,简单来说,工厂模式就是创建对象的一种方式。

1.2.工厂模式有什么用?

作用:创建对象;降低代码冗余度。

应用场景:当你想要批量生产同种类的对象的时候;比如,你想生成一个班级的40个学生,每个学生都有姓名、年龄等特征。这时候你创建一个“工厂”,把信息丢到工厂里,工厂就给你造一个人出来,非常方便。

1.3.为什么用工厂模式?

从工厂模式的作用出发来看,工厂模式的主要作用就是用来产生对象的。那么别的创建对象的模式有什么缺点?

a.用字面量的方式创建对象

字面量就是用来描述变量的;一般来说,给变量赋值的时候,等号右边的都可以看作是字面量(因为等号右边的都是用来描述这个变量的,比如描述一个变量为字符串(字符串字面量)、一个数组(数组字面量)、一个对象(对象字面量),等等)。

var person = {
    name:'zhangsan',
    age:19,
    gender:'male',
    sayName:function(){
        console.log(this.name);
    }
}

缺点:用字面量的方式来创建对象,最大的缺点就是,这个对象是一次性的,如果有很多个同学,我们就要写很多次,就会很麻烦。

b.new Object()创建对象

Object是JavaScript提供的构造函数;new Obeject()就是李彤JavaScript缇欧功德构造函数式实例了一个对象;

var person = new Object();
person.name=name;
person.age=age;
person.gender='male';
person.sayName:function(){
    console.log(this.name);
}

缺点:可以发现它是先实例化了一个对象,然后再为对象添加属性,这样就看不出来是个整体(像上面的字面量来创建,属性都包在一个大螺号里面,这样就很好看出是一个整体)。

因此,我们是为了使创建对象更加方便(不像字面量创建那样一次性),也为了写的代码更像个整体,就可以交给工厂模式来做。

1.4使用工厂模式创建对象

function createPerson(name,age,gender){
    var Person = new Object();
    person.name = name;
    person.age = age;
    person.gender = gender;
    person.sayName:function(){
        console.log(this.name);
    }
    return person;
}

//利用工厂函数来创建对象
var person1 = createPerson("zhangsan", 18, 'male');
var person2 = createPerson("lisi", 20, 'female');

优点:大量创建函数,封装代码,提高代码复用率;

缺点:区分不出对象种类,方法冗余。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值