有且只有一個實例, 且只有一個訪問入口, 這就是單例模式
class SingleAuthor {
getGrilfriend () {
console.log(" i love you")
}
static sleep () {
if (!SingleAuthor.dream) {
SingleAuthor.dream = new SingleAuthor()
}
return SingleAuhor.dream
}
}
const codeMan = SingleAuthor.sleep()
const codeDog = SingleAuthor.sleep()
console.log(codeMan === codeDog) // true
單例模式要實現就是, 不管你創建多少次,最後返回給你的都是你唯一的那個實例, 理解這個原理就可以很好的知道單例模式的運用了, 同時我們也可以用閉包實現
Single.sleep = (function () {
let dream = null
return function () {
if (!dream) {
dream = new Single()
}
return dream
}
})()
网友评论