有且只有一個實例, 且只有一個訪問入口, 這就是單例模式
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
單例模式要實現(xiàn)就是, 不管你創(chuàng)建多少次,最後返回給你的都是你唯一的那個實例, 理解這個原理就可以很好的知道單例模式的運用了, 同時我們也可以用閉包實現(xiàn)
Single.sleep = (function () {
? ? let dream = null
? ? return function () {
? ? ? ?if (!dream) {
? ? ? ? ? dream = new Single()
? ? ? ?}
? ? ? ?return dream
? ? ?}
})()