创建型设计模式
应用场景
- 很多new 对象的业务场景都可以考虑使用
- JQuery $就是个工厂
- React.createElement
- 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)
}
设计原则
- 构造函数和创建者分离
- 符合开放封闭原则
网友评论