众所周知,程序设计模式有20多种,js常用的设计模式大概有7-9种。
好的设计模式在平时的开发中能提升效率,精简代码。
学好设计模式是程序员提升自己的一个途径之一。
复制代码
今天讲第一篇--工厂模式,之后会一周定期更新3-4篇文章。
一:工厂模式
工厂模式:顾名思义就是向工厂一样能生产出成套的成品。举个生活中的例子,例如,你想吃汉堡了,你只需要去汉堡店买就行,你不需要在意汉堡的成分有哪些,不需要提供原材料,服务员会将做好的汉堡包装好给你。这其实就是个工厂模式,你不需要在意细节,你拿来用就ok了。
工厂模式在js中的存在形式
- 将new操作简单的封装,
- 遇到new 可以考虑是否使用工厂模式
class Product{
constructor(name){
this.name = name
}
sayname(){
alert(this.name)
}
sayage(){
alert('age')
}
}
class Creator{
create(name){
return new Product(name)
}
}
//测试代码
let creator = new Creator()
let instance = creator.create('111')
instance.sayname()
instance.sayage()复制代码
--以上代码就是一个典型的工厂模式
实际开发的运用场景
- jquery的$对象就是一个工厂模式。
$('p') //每次jquery的取一个元素都是$() 而不是new $(),正因为不是每次new $, 所以很明显jquery运用了工厂模式 好处:1.书写简单,让jquery的链式操作让开发者使用的很舒服, 否则每有一个选项就得new 一个jquery对象2.但jquery改名,不需要更换代码. 复制代码
总结:
工厂模式就是就是对new操作符进行了封装,书写简单,能减少冗余代码。
最后附上用es6实现的微小版jquery,希望能加深对工厂模式的理解。