工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替`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)
}
发表评论 取消回复