單例模式 singleton

花君發表於2018-03-26

在真實專案中,為了實現模組開發或者團隊協作開發,我們經常應用單例模式,--一般業務邏輯部分的程式碼都是依託單例模式設計規劃的。

(單例模的由來)

》long long ago `~~~~js中都是值型別,沒有引用資料型別。

var age = 12;

var age = 26;



複製程式碼

>>如果後編寫的程式碼,建立的變理或是函式名和之前的一樣,會把之前的替換,程式碼衝突。-- 全域性變數汙染,
 全域性變數衝突。把描述同一件事的特徵進行歸納,放在一起,看下面的就是單例模式,就是物件複製程式碼

var person1={
     age : "12"
}
var person2= {
    age : "26"
}

//呼叫:
person1.age
person2.age
>>這樣就不衝突了。

複製程式碼

上面這種就是單例 --》我們把物件資料型別實現-》把描述同一件事件的屬性或者特徵歸納彙總在一起,以此避免全域性變數衝突問題,的方式和思想叫做******單例模式*******。

singleton 不僅僅是物件名了,在單例模式中,singleton稱為“名稱空間->nameSpace把描述同一件事務的屬性或者方法存入在某一個名稱空間下,多個命名中的屬性和方法是互不干擾的。

var singleton =  {
    nameSpace1:{
      xxx:xxx,
      ...
    },
    nameSpace2:{
     xxx:xxx,
     .... 
   }
}複製程式碼

使用單例模式實現模快開發

》模組化開發 

把團隊協作開發的是時候,我們常會把一個複雜而面,按照具體的功能劃分成為不同的模組。

//張三: 搜尋模組
var  searchModel = {
    sumbmit:function(){}
    ....
}


//李四: 天氣模組
var weatherModel ={
    setWeather:function(){},
   ....
}
//王蘭:
var showModel = {
    show:function(){}
    //呼叫李四的方法
     weaterModel.setWeater();
     this.show();
}
 執行王蘭的方法:
 showMode.show();
//複製程式碼



公共模組

var utils = {
    show:function(){}
}複製程式碼



相關文章