js 設計模式

2021-09-02 22:40:16 字數 2188 閱讀 7389

1. 單例模式

保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點(呼叫乙個類,任何時候返回的都是同乙個例項)。

class singleton 

getname()

static getinstance(name)

return this.instance

}}const instancea = singleton.getinstance('seven1')

const instanceb = singleton.getinstance('seven2')

2. 工廠模式

工廠模式定義乙個用於建立物件的介面,這個介面由子類決定例項化哪乙個類。該模式使乙個類的例項化延遲到了子類。而子類可以重寫介面方法以便建立的時候指定自己的物件型別。

class car 

getname ()

setname(name)

}class bus

getname ()

setname(name)

use ()

}class factory

static getinstance(name)

}getname ()

setname(name)

}var car = factory.getinstance('car')

var bus = factory.getinstance('bus')

console.log(car)

console.log(bus)

3.發布/訂閱者模式

發布訂閱模式,基於乙個主題/事件通道,希望接收通知的物件(稱為subscriber)通過自定義事件訂閱主題,被啟用事件的物件(稱為publisher)通過發布主題事件的方式被通知。

js中的事件監聽機制就是一種觀察者模式。

class publish 

}// 訂閱事件

on(eventtype, handler)

this.handlers[eventtype].push(handler)

}// 觸發事件(發布事件)

emit(eventtype)

}// 刪除訂閱事件

off(eventtype, handler) }}

}}var publisher = new publish();

//訂閱事件a

publisher.on('a', function(data));

publisher.on('b', function(data));

//觸發事件a

publisher.emit('a', '我是a呼叫的引數1');

publisher.emit('a', '我是a呼叫的引數2');

//觸發事件b

publisher.emit('b', '我是b呼叫的引數1');

publisher.emit('b', '我是b呼叫的引數2');

//console 控制台

//1我是a呼叫的引數1

//1我是a呼叫的引數2

//2我是b呼叫的引數1

//2我是b呼叫的引數2

4.觀察者模式

//首先是目標的建構函式,他有個陣列,用於新增觀察者。還有個廣播方法,遍歷觀察者陣列後呼叫他們的update方法:

class subject

addsub(sub)

notify() );

}}//觀察者有個update方法:

class observer

}//測試**

let subject = new subject();

let ob = new observer();

//目標新增觀察者了

subject.addsub(ob);

//目標發布訊息呼叫觀察者的更新方法了

subject.notify(); //update

觀察者和發布/訂閱者區別

1.觀察者模式是一種緊耦合的狀態;而發布/訂閱模式是一種松耦合的狀態;

2.觀察者模式是通過主題自己本身去遍歷觀察者,然後呼叫訂閱者的通知方法去實現的;

而發布/訂閱模式是通過事件管道去通知的

JS設計模式

什麼是模式?什麼是設計模式?設計模式是解決軟體設計常見問題的可復用方案 什麼是反模式?反模式是一種針對某個特定問題的不良解決方案,該方案會導致槽糕的情況發生 單例模式?皇帝單例模式 var kingsingleton function return 皇帝存在返回皇帝 return instance ...

js 設計模式

廣義上,模式是乙個可以用來產生其他事物的模板或者模型。在軟體開發過程中,模式是指乙個通用問題的解決方案,用抽象化表示和解決一類問題的模板。學習設計模式,有助於寫出可復用和可維護性高的程式 設計模式的原則是 找出 程式中變化的地方,並將變化封裝起來 1.工廠模式 即,函式裡面返回單個物件。缺點就是建立...

js 設計模式

設計模式就是一套被反覆使用的 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了重用 讓 更容易被他人理解 保證 可靠性。其實就是前人總結的,針對特定型別問題的設計方案。總體來說設計模式分為三大類 建立型模式 共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模...