js 工厂模式

创建型设计模式

应用场景

  1. 很多new 对象的业务场景都可以考虑使用
  2. JQuery $就是个工厂
  3. React.createElement
  4. vue异步组件
class jQuery {
    constructor(selector) {
        let slice = Array.prototype.slice
        let dom = slice.call(document.querySelectorAll(selector))
        let len = dom ? dom.length : 0
        for (let i = 0; i < len; i++) {
            this[i] = dom[i]
        }
        this.length = len
        this.selector = selector || ''
    }
    append(node) {

    }
    addClass(name) {

    }
    html(data) {

    }
    // 此处省略若干 API
}
window.$ = function (selector) {
    return new jQuery(selector)
}

设计原则

  • 构造函数和创建者分离
  • 符合开放封闭原则

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