工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替`new`操作的一种模式。著名的 Jive 论坛 ,就大量使用了工厂模式,工厂模式在 Java 程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的`new`,我们经常要根据类`Class`生成实例对象,如`A a=new A()` 工厂模式也是用来创建实例对象的,**所以以后`new`时就要多个心眼,是否可以考虑使用工厂模式**,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。

class Product {
    constructor(name) {
        this.name = name
    }
    init() {
        alert('init')
    }
    fun1() {
        alert('fn1')
    }
    fun2() {
        alert('fn2')
    }
}

class Creator {
    create(name) {
        return new Product(name)
    }
}

// 测试
let creator = new Creator()
let p = creator.create('p1')
p.init()
p.fn1()

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


点赞(1) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部
{__SCRIPT__}