日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript设计模式——单例模式的理解与应用

發布時間:2023/12/31 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript设计模式——单例模式的理解与应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaScript設計模式——對單例模式的一些見解

JavaScript設計模式主要分類:

①創建型設計模式,例如單例模式、工廠模式

②結構型設計模式,例如裝飾者模式、適配器模式

③行為型設計模式,例如觀察者模式、訪問者模式

④技巧型設計模式,例如委托模式、數據訪問隊形模式

⑤結構型設計模式,例如MVC模式、MVVM模式、MVP模式

本文討論的是JavaScript中最常見的設計模式:單例模式,適合對JavaScript設計模式沒什么太多了解的伙伴。

單例模式出現的背景:

以下為一段用于前后端交互的js

function getUserInfo() {// 獲取用戶信息}function setUserInfo(param) {// 設置用戶信息}function getCount() {// 登錄}function logout() {// 注銷}

這樣寫的弊端:因為function getUserInfo(){}相當于 var getUserInfo = function(){},產生了很多全局變量,例子舉的例子算是比較特殊的了,如果是比較大眾一點的變量名,就很容易產生沖突。

如何解決?

使用單例模式定義命名空間:

var requestUtil = {getUserInfo: function () {// 獲取用戶信息},setUserInfo: function (param) {// 設置用戶信息},login: function () {// 登錄},logout: function () {// 注銷}}

函數的調用:當需要獲取用戶信息時,requestUtil.getUserInfo()即可。

使用單例模式創建小型代碼庫:

var X = {Util: {util1: function () {},util2: function () {}},Ajax: {get: function () {},post: function () {}},Others: {function1: function () {},function2: function () {}}}

使用方法:X.Ajax.get()

使用單例模式管理靜態變量:

背景:我們都知道,JavaScript沒有static這類關鍵字,所以定義任何變量理論上都是可以改變的(ES6前,因為ES6出現了類似的const,用于定義常量),那么在ES6前,想定義一個靜態變量,原意是不想改變的,可實質上它又能被改變,應該如何做到不能被改變?答案如下:

var Conf = (function () {// 私有變量var conf = {MAX_NUM: 100,MIN_NUM: 1,COUNT: 1000}// 返回取值函數return {get: function (name) {retrun conf[name] ? conf[name] : null}}})()

沒有定義賦值函數,因此里邊的變量自然就不能被改變。

使用方法: var count = Conf.get('MAX_NUM')

惰性單例:

說明:用于延遲單例對象的創建,即惰性創建。

var LazySingle = (function () {var _instance = nullfunction Single () {return {publicMethod: function () {return this.publicProperty},publicProperty: '1.0'}}return function () {if (!_instance) {_instance = new Single()}return _instance}})()console.log(LazySingle().publicMethod())


總結

以上是生活随笔為你收集整理的JavaScript设计模式——单例模式的理解与应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。