在真實專案中,為了實現模組開發或者團隊協作開發,我們經常應用單例模式,--一般業務邏輯部分的程式碼都是依託單例模式設計規劃的。
(單例模的由來)
》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(){}
}複製程式碼