美文网首页
工厂模式

工厂模式

作者: zxhnext | 来源:发表于2019-09-22 16:30 被阅读0次

◆ 将new操作单独封装
◆ 遇到new时,就要考虑是否该使用工厂模式

工厂模式符合下列设计原则:
◆ 构造函数和创建者分离
◆ 符合开放封闭原则

1. 工厂模式demo

工厂模式类图

代码如下:

class Product {
  constructor(name) {
    this. name = name
  }
  init() {
    alert('init')
  }
  fun1() {
    alert('fun1')
  }
  fun2() {
    alert('fun2')
  }
}
class Creator {
  create( name) {
    return new Product()
  }
}

let creator = new Creator()
let p = creator.create('p1')
p.init()
p.fun1()

2. 工厂模式使用场景

  1. jQuery - $('div')
  2. React.createElement
  3. vue 异步组件

2.1 jquery中的使用

$('div')new $('div')有何区别?
◆ 书写麻烦,jQuery的链式操作将成为噩梦
◆ 一旦jQuery名字变化,将是灾难性的

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

2.2 React.createElement

var profile = React.createElement("div", null,
Reaçt.createElement("img", { src: "avatar.png", className: "profile" }),
React.createElement("h3", null, [user.firstName, user.lastName].join(" "))

class Vnode(tag, attrs, chilren) {
  // 省略内部代码
}
React.createElement = function (tag, attrs, children) {
  return new Vnode(tag, attrs, chilren)
}

2.3 vue异步组件

Vue.component('asyncexample', function (resolve, reject) {
  setTimeout(function () {
    resolve({
      template:'<div>I am async!</div '
    })
  }, 1000)
})

相关文章

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 工厂模式

    工厂模式细分三种:简单工厂模式、工厂模式、抽象工厂模式。 工厂模式相当于抽象了简单工厂模式的工厂类,而抽象工厂模式...

  • 工厂模式

    工厂模式 就是工厂---生产-->产品 在设计模式中,分为 简单工厂模式, 工厂方法模式,抽象工厂模式. 工厂模式...

  • 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

    找女朋友之简单工厂模式,工厂模式,抽象工厂模式 找女朋友之简单工厂模式,工厂模式,抽象工厂模式

  • 【设计模式】- 工厂模式

    工厂模式分为三种:简单工厂模式、工厂方法模式和抽象工厂模式。 工厂模式:靠工厂生产对象 简单工厂模式中只有一个工厂...

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 第一章2.0工厂- 基础类准备

    2.1工厂-简单工厂模式2.2工厂-工厂方法模式2.3工厂-抽象工厂模式

网友评论

      本文标题:工厂模式

      本文链接:https://www.haomeiwen.com/subject/inosuctx.html