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

資訊專欄INFORMATION COLUMN

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

MSchumi / 791人閱讀

摘要:什么是單例模式單例模式是單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。

什么是單例模式

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

1.創建單例模式,案例1:其實就是創建個對象,將我們的對象看做一個人

var person ={
    height:1,
    name:"wy",
    callback:function(){
        console.log(person.name);
    },
    func:function(){
      console.log("this is single function")
    }
}

這種創建在業務中使用,這時候會有局限性,

1.可擴展性差,如果以后在不同場景復用,如我們剛剛的類,如果要增加一個width屬性,

    
    //
    person.width = 1;
    //新增了一個height屬性時候
    
    person.height=2
    //就會覆蓋了原來的屬性
   

例子明顯看的出來,相互影響,耦合度很高,在業務中使用很容易會導致覆蓋和重寫的可能

2.如果我們想一個類即能被繼承,又不會改變公用的屬性(方法一)

var person =function(){
    
    this.height=1;
    this.name="wy"
    this.callback=function(){
        console.log(person.name);
    },
    this.func=function(){
      console.log("this is single function")
    }
    
}

var girl = new person;
var boy = new person;

girl.height = 2;
boy.height = 3;

console.log(boy.height,girl.height);

這樣即可以實現多態和繼承,相互又是獨立的,但是在業務上使用會出現一個問題,就是名字重復時候,會導致所有屬性出問題,于是再次擴展實現方式

(function(){
    
    var Namespace = Namespace||{};
    Namespace.person = function(){
    
        this.height=1;
        this.name="wy"
        this.callback=function(){
        console.log(person.name);
        },
        this.func=function(){
          console.log("this is single function")
        }
    
    } 

    if(window)
    window.Namespace = Namespace||{};

})(window,undefined)

var person = new Namespace.person;
var person2 = new Namespace.person;
console.log(person.height,Namespace,person)

使用命名空間對不同開發模塊做區分,能有效避免這種情況。

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

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

相關文章

  • 寫代碼也有“套路”-談談設計模式

    摘要:所以設計模式其實就是在前人各種踩坑經驗之上,總結出的各種開發套路。但更好的套路是使用單例模式它可以保證只創建一個對象第一次訪問時創建,之后訪問時直接返回已有對象,并提供全局的訪問。因此也有很多人對于設計模式的價值存在質疑。 編程教室開了這么久,已經有很多人從完全零基礎的小白成為了會寫代碼的菜鳥程序員,能夠自己獨立開發程序。不過到此階段,常常會遇到瓶頸,感覺功能可以實現,但代碼看起來有些...

    tain335 評論0 收藏0
  • 面試官:“談談Spring中都用到了那些設計模式?”。

    摘要:會一直完善下去,歡迎建議和指導,同時也歡迎中用到了那些設計模式中用到了那些設計模式這兩個問題,在面試中比較常見。工廠設計模式使用工廠模式可以通過或創建對象。 我自己總結的Java學習的系統知識點以及面試問題,已經開源,目前已經 41k+ Star。會一直完善下去,歡迎建議和指導,同時也歡迎Star: https://github.com/Snailclimb... JDK 中用到了那...

    Astrian 評論0 收藏0
  • 職責原則之模式的黃金法則

    摘要:今天說一下,單一職責原則。比如,接口的地址本來已經很完美了,但是你的是處女座最討厭處女座非要給路由添加幾個以保證后臺數據的安全。為了過年,我會選擇使用,因為不知道處女座以后會做出什么傻事來。此時的使用動態織入后,可以完美的解決處女座。 在設計模式中,有著幾條視為黃金原則,設計模式都是圍繞黃金原則,對代碼或者說是架構設計做出一些相應的調整,久而久之,GoF 4人組,發現其實有些設計思想可...

    GeekQiaQia 評論0 收藏0
  • H5學習

    摘要:為此決定自研一個富文本編輯器。本文,主要介紹如何實現富文本編輯器,和解決一些不同瀏覽器和設備之間的。 對ES6Generator函數的理解 Generator 函數是 ES6 提供的一種異步編程解決方案,語法行為與傳統函數完全不同。 JavaScript 設計模式 ② 巧用工廠模式和創建者模式 我為什么把他們兩個放在一起講?我覺得這兩個設計模式有相似之處,有時候會一個設計模式不能滿...

    aristark 評論0 收藏0

發表評論

0條評論

MSchumi

|高級講師

TA的文章

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