設計模式是前人遇到大量相似邏輯,而研究出的一種最有效的程式設計方法。簡單來說,設計模式是用來解決某些邏輯業務的。
學好設計模式,等你遇到了那些邏輯業務時,就能用超有效的**去解決這些邏輯業務。後端常用的設計模式有23種,而前端常用的不到十種。所以作為前端工程師,只要掌握這幾種就夠了。
工廠模式 *
單例模式 *
觀察者模式 *
命令模式
模板模式
策略模式
命名空間模式
備忘錄模式
裝飾器模式
複雜工廠設計模式可用於token的儲存,因為有些瀏覽器支援localstorage,有些瀏覽器不支援,得用cookie。
複雜工廠設計模式// 簡單工廠設計模式 —— 咖啡機
function
makecoffee
(bean, water)
/*使用不同原料,產生屬性一樣,屬性值多樣的產品(同型別)就叫簡單工廠設計模式
*/
無論new多少次,都只返回同乙個物件,就叫單例模式。// 複雜工廠設計模式 —— 果汁工廠
function
fruitmaker()
fruitmaker.prototype.
make
=function
(type, meta)
else
}fruitmaker.prototype.
extend
=function
(obj)
}fruitmaker.
extend
( pear:
function
(meta)})
const fm =
newfruitmaker()
fm.make(,
'乙個蘋果,一斤水'
)fm.extend
/*使用不同原料,產生不同型別的產品(屬性多樣,屬性值多樣),就叫複雜工廠設計模式
*/
比如登入註冊就可以用單例。
單例模式的實現方法:全域性變數,靜態屬性,即時函式,閉包-惰性函式等…
// 全域性變數實現單例
let instance =
null
;function
instance()
// 但全域性變數會汙染全域性,靜態屬性也可以被修改,所以這兩種都不太給力
// 即時函式
let instance =
(function()
})()
// 推薦使用這種方法
// 惰性函式(但缺點是使用者不能在instance原型上掛載屬性)
function
instance()
instance.prototype = oldprototype // 防止原型丟失
instance =
newinstance()
instance.constructor = instance }
// 不推薦
0:4// 惰性函式(完美版)
function
instance()
instance.prototype = oldprototype // 防止原型丟失
instance =
newinstance()
instance.constructor = instance
return instance
}// 太複雜,不推薦
前端常用設計模式
炒個冷飯,設計模式 前端常用設計模式 我們在面試的時候很多情況都需要手寫 所以我們寫都時候盡量用es6,且裡面要用設計模式。這樣評分可以達到優秀,如果只是手寫實現出功能那麼我們只能是及格 主要面試和別人競爭 游泳健身了解一下 github 哈哈哈哈哈?你走到一棟大樓面前 哇!鋼筋,水泥,木板。面向過...
前端常用設計模式
像流水線作業,產出一樣的產品。傳參進去,操作的具體邏輯封裝在乙個方法裡,最終返回乙個物件。將new操作單獨封裝,遇到new時,就要考慮是否用工廠模式 這個creator就是乙個工廠,裡面有create函式,工廠通過create函式建立product。這樣通過create已經把真正的建構函式封裝起來,...
前端開發設計模式
高階高階前端開發之路之設計模式,衝!記錄一些學的七七八八的程式設計思維,設計模式 vue router物件是放在vue的原型鏈上的 只有get沒有set vue.prototype.router router object.defineproperty vue.prototype router 總結...