設計模式
今天我們就聊一下這三個設計模式
單例模式
也就是說,當我們使用建構函式,每一次 new 出來的物件 屬性/功能/方法 完全一樣 的時候,我們把他設計成單例模式
核心** 應用
creatediv.prototype.init = function (text)
// 準備把這個 creatediv 做成單例模式
// 讓 singleton 成為乙個閉包函式
const singleton = (function ()
instance.init(text)
return instance
}})()
singleton('hello') // 第一次的時候,頁面中會出現乙個新的 div ,內容是 hello
singleton('world') // 第二次的時候,不會出現新的 div,而是原先的 div 內容變成了 world
組合模式
準備乙個 組合模式 的建構函式
class compose
// 新增任務的方法
add (task)
// 乙個執行任務的方法
execute () )
}}
我們就用我們的組合模式建構函式來吧前面的幾個功能組合起來
const c = new compose()
// 把所有要完成的任務都放在佇列裡面
c.add(new gethome())
c.add(new opencomputer)
c.add(new playgame)
// 直接器動任務佇列
c.execute()
// 就會按照順序執行三個物件中的 init 函式
觀察者模式
乙個例子
addeventlistener
說白了: 觀察者模式就是我們自己實現乙個 addeventlistener 的功能
書寫**on
emit
off
以上就是最基本的 觀察者模式
接下來我們就使用一下試試看
使用一下
const o = new observer()
// 準備兩個事件處理函式
function a(e)
function b(e)
// 訂閱事件
o.on('abc', a)
o.on('abc', b)
// 發布事件(觸發)
o.emit('abc', '100', '200', '300') // 兩個函式都回執行
// 移除事件
o.off('abc', 'b')
// 再次發布事件(觸發)
o.emit('abc', '100', '200', '300') // 只執行乙個 a 函式了
單例設計模式的三種方式
單例模式 0 保證乙個類只能獲取乙個例項 1,步驟 1.構造方法私有化 外部不能訪問,無法建立例項 2.在類的內部自己建立自己的例項,並且設定為static 因為外部不能獲取其實例,只能靜態獲取 public class singleton 單例 final修飾的 class student 單例 ...
設計模式三 單例模式
單例模式也是建立型模式的一種,也是23種設計模式中比較簡單的一種。見名思意,在整個軟體系統中,只有某個型別的乙個物件,並且訪問他的地方也只有乙個,也就是只有乙個全域性物件訪問點,這個例項或物件被所有是應用程式所共享 很多可以使用到這樣的功能模組 比如資料庫連線池物件 印表機物件,因為整個系統中,資料...
設計模式 三 單例模式
package zzq.designpatterns.creativepattern import lombok.data 單例 singleton 模式的定義 指乙個類只有乙個例項,且該類能自行建立這個例項的一種模式。例如,windows 中只能開啟乙個任務管理器,這樣可以避免因開啟多個任務管理器...