javascript設(shè)計模式之工廠模式
更新時間:2022年01月11日 15:11:58 作者:妖怪不慌不張
這篇文章主要為大家介紹了javascript工廠模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
介紹
- 將new操作單獨封裝
- 遇到new時,就要考慮是否應(yīng)該使用工廠模式
- 比如買漢堡:直接點餐、取餐,我們不會親手做,商店要“封裝”做漢堡的工作,做好直接給買者
UML類圖

直接上工廠模式的代碼
class Product {
constructor(name} {
this.name = name
}
init() {console.log('init')}
fun1() {console.log('fun1')}
fun2() {console.log('fun2')}
}
// 此處的Creator就是工廠
class Creator {
create(name) {
// 此處返回的是實例,工廠模式的特點
return new Procuct(name)
}
}
// 運行代碼
let creator = new Creator()
let p = creator.create('p1')
p.init()
p.fun1()
p.fun2()
工廠模式的場景
Jquery - $(‘div’)
// 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)
}
React.createElement (創(chuàng)建虛擬dom的實例)

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
javascript中的=等號個數(shù)問題兩個跟三個有什么區(qū)別
一個等號就是個賦值的作用,主要問題在于兩個跟三個等號的區(qū)別,想必有很多的朋友都不知道吧,在本文有個不錯的示例主要介紹下兩者到底有什么區(qū)別,感興趣的朋友不要錯過2013-10-10
在javascript中創(chuàng)建對象的各種模式解析
下面小編就為大家?guī)硪黄趈avascript中創(chuàng)建對象的各種模式解析。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧2016-05-05

