JS设计模式之工厂模式

工厂模式

简单来说,工厂模式是将实现同一事情的相同代码,放到一个函数中去,以后如果想再实现这个功能,都不需要重新编写这些代码了,只要执行当前的函数即可。

主要思想

将对象的创建和对象的实现相分离,是一种关注对象创建的概念。

简单工厂

简单工厂模式也称为静态工厂模式,由一个工厂对象来决定创建某一种产品对象类的实例,主要用来创建同一类对象。
调用需要的功能到工厂里获取,无需关注创建过程。
简单工厂的优点就是明确了各自的职责和权利,有利于整个软件体系结构的优化。缺点就是违反了开闭原则,如果要新添加类,就要改变工厂类。

//创建一个函数名为Person,参数为name,age
function Person(name,age){
    var obj = {};
    obj.name = name;
    obj.age = age;
    obj.say = function(){
        console.log('my name is '+this.name)
    }
    return obj
}
var p1 = Person('张三',19)
p1.say()
console.log(p1)
var p2 = Person('李四',89)
p2.say()
console.log(p2)

在这里插入图片描述

抽象工厂

抽象工厂模式提供了一种封装一组具有相同主题的单个工厂而无需指定其他类的方法。即工厂的工厂。
构造函数对整个创建过程的控制是有限的,有时你需要把控制权交给一个拥有更广泛知识的工厂。
一个抽象工厂创建了由一个共同主题相关的对象。在面向对象的编程中,工厂是创建其他对象的对象。一个抽象工厂已经抽象出来了一个主题,这个主题被创建的对象所共享。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值