工厂模式
1. 介绍和举例
2. uml类图
3. demo代码
4. 经典应用场景
介绍和举例
1. 优势: 通过工厂函数直接生成实例, 而不需要每次都 new 生成
uml类图
工厂模式.png
demo代码
class Product {
constructor(name) {
this.name = name
}
init() {
console.log('init');
}
}
// 工厂函数
class Creator {
create(name) {
return new Product(name)
}
}
// 使用
let creator = new Creator()
let p = creator.create('p')
p.init()
经典应用场景
- jquery中的$
window.$ = function (selector) {
return new jQuery(selector)
}
- React.createElement
class Vnode {
constructor(tag, attrs, children) {
// ... 源码
}
}
React.createElement = function (tag, attrs, children) {
return new Vnode(tag, attrs, children)
}
网友评论