国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js常用設計模式實現(一)單例模式

EscapedDog / 1640人閱讀

摘要:什么是設計模式設計模式是一種能夠被反復使用,符合面向對象特性的代碼設計經驗的總結,合理的使用設計模式能夠讓你得代碼更容易維護和可靠設計模式的類型共分為創建型模式,結構型模式,行為型模式三種創建型模式創建型模式是對一個類的實例化過程進行了抽象

什么是設計模式
設計模式是一種能夠被反復使用,符合面向對象特性的代碼設計經驗的總結,合理的使用設計模式能夠讓你得代碼更容易維護和可靠

設計模式的類型共分為創建型模式,結構型模式,行為型模式三種

創建型模式

創建型模式是對一個類的實例化過程進行了抽象,把對象的創建和對象的使用進行了分離,創建模式有

單例模式

抽象工廠模式

建造者模式

工廠模式

原型模式

單例模式
單例模式的定義是保證一個類僅有一個實例,單例模式它必須自行創建這個實例,并提供一個訪問他的全局的訪問點
es5的實現
var only = function(data) {
    this.data = data;
    this.Instance = null;
}
only.go = function(data) {
    if(!this.Instance) {
        this.Instance = new only(data);
    }
    return this.Instance;
}
let obj1 = only.go("1")
let obj2 = only.go("2")
console.log(obj1 === obj2);
console.log(obj1);
console.log(obj2);
es6
class only {
    constructor(data) {
        if (only.prototype.Instance === undefined) {
            this.data = data;
            only.prototype.Instance = this;
        }
        return only.prototype.Instance;
    }
}

let ob1 = new only("a");
let ob2 = new only("b");
ob2.init = "init";

console.log(ob1 === ob2);
console.log(ob1);
console.log(ob2);

上邊的代碼中,無論怎么new,其結果都是唯一的那個實例

單例模式的優缺點

單例模式,因為他的實例是唯一的,所以完全可以通過創建的時候,嚴格的去控制怎么去創建和訪問或者說拋出錯誤,如果存在頻繁的創建和銷毀的操作的時候,單例模式事可以提高性能的

但是同樣的,單純的單例模式中是沒有抽象操作的,所以說單例模式是一個不便于擴展的模式

單例模式的使用場景

舉個例子比如說在項目中的某些時候,我們需要一個dom元素,但是這個元素并不存在,我們需要創建他,但是在創建完之后,如果我們再去點這個按鈕的時候,如果他再一次的創建dom,顯然是不合理的,dom會越來越多一直被創建,那么在這個時候,我們可以使用單例模式來實現我們想要的效果

例子實現

上邊的改吧改吧

class only {
    constructor(data) {
        if (only.prototype.Instance === undefined) {
            var div = document.createElement("div");
            div.innerHTML = data;
            only.prototype.Instance = div;
        }
        return only.prototype.Instance;
    }
}

let ob1 = new only("a");
let ob2 = new only("b");
ob2.init = "init";

console.log(ob1 === ob2);
console.log(ob1);
console.log(ob2);

如圖

dom元素并不會被重復創建,可以在上邊的例子中加一個狀態,根據狀態判斷是否要顯示,避免了資源的浪費

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105563.html

相關文章

  • 談談JS設計模式和應用場景(單例模式)

    摘要:什么是單例模式單例模式是單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。 什么是單例模式 單例模式是單例模式,也叫單子模式,是一種常用的軟件設計模式。 在應用這個模式時,單例對象的類必須保證只有一個實例存在。 許多時候整個系統只需要擁有一個的全局對象,這樣有利于我們協調系統整體的行為。。(來源于維基百科) 1.創建單例模式,案...

    MSchumi 評論0 收藏0
  • js設計模式--單例模式

    摘要:文章系列設計模式單例模式設計模式策略模式設計模式代理模式概念單例模式的定義是保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。在開發中,單例模式的用途同樣非常廣泛。 前言 本系列文章主要根據《JavaScript設計模式與開發實踐》整理而來,其中會加入了一些自己的思考。希望對大家有所幫助。 文章系列 js設計模式--單例模式 js設計模式--策略模式 js設計模式--代理模式 概念...

    CloudwiseAPM 評論0 收藏0
  • 淺談js單例模式

    摘要:單例模式說到單例設計模式,中經常使用的單例模式通常分兩種,懶漢模式和餓漢模式懶漢模式簡單寫了下私有化構造函數在獲取實例的方法中返回實例化對象雖然很多大佬都寫過啦,但是小生為了加深記憶便再寫一遍雖然實現了單例模式,但是未考慮到線程安全,多個線 java單例模式 說到單例設計模式,Java中經常使用java的單例模式通常分兩種,懶漢模式和餓漢模式 懶漢模式 class singleDemo...

    draveness 評論0 收藏0
  • 從ES6重新認識JavaScript設計模式(): 單例模式

    摘要:什么是單例模式單例模式是一種十分常用但卻相對而言比較簡單的單例模式。對象就是單例模式的體現。總結單例模式雖然簡單,但是在項目中的應用場景卻是相當多的,單例模式的核心是確保只有一個實例,并提供全局訪問。 1. 什么是單例模式? 單例模式是一種十分常用但卻相對而言比較簡單的單例模式。它是指在一個類只能有一個實例,即使多次實例化該類,也只返回第一次實例化后的實例對象。單例模式不僅能減少不必要...

    G9YH 評論0 收藏0

發表評論

0條評論

EscapedDog

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<