工厂模式

工厂模式

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()

经典应用场景

  1. jquery中的$
window.$ = function (selector) {
  return new jQuery(selector)
}
  1. React.createElement
class Vnode {
  constructor(tag, attrs, children) {
    // ... 源码
  }
}
React.createElement = function (tag, attrs, children) {
  return new Vnode(tag, attrs, children)
}

你可能感兴趣的:(工厂模式)