1.了解并上手
-
核心思想:保證一個類只有一個實體物件,并且提供了一個全域的訪問點,(外部通過這個訪問點來訪問該類的唯一實體)
-
全域訪問點:全域靜態欄位,就是宣告一個私有的靜態的屬性,型別是該類;因為靜態欄位是屬于類的,就可以保證只有一個實體;
-
私有建構式:保證外部無法實體化該類; 1 //常規中,先判斷這個實體是否已經被new 過了,如果沒有,讓這個這個靜態屬性Goods._instance等于這個實體;函式回傳的是這個實體 2
3 export default class Goods{ 4 private static _instance:Goods; 5 private num:number=3; 6 private constructor(){ //私有建構式 7 8 } 9 //常規寫法 10 public static getInstance():Goods{ 11 if(!Goods._instance) Goods._instance=new Goods(); 12 return Goods._instance; 13 } 14 //回傳這個實體, 15 //使用執行器函式get寫 16 //當獲取這個值的時候會呼叫這個函式
17 public static get _instance():Goods{ 18 return Goods._instance || (Goods._instance=new Goods()) 19 } 20 21 public run():void{ //實體方法 22 console.log("aa") 23 } 24 25 } 26 27 //外部執行方式 28 1.Goods.getInstance().run() //這樣會執行這個run方法,因為getInstance是個靜態方法,必須使用類呼叫,而這個靜態方法回傳的是一個實體,就能呼叫實體方法run(); 29 2.Goods.instance.run()//get執行方式 30 31 //每次呼叫都是同一個物件,所以Goods.instance=Goods.instance這兩個相等,都是一個實體;
2.使用場景
一個作業系統中可以存在多個列印任務,但我們只有一個列印機,同一時間只能有一個正在作業的任務,這個時候記憶體中列印機的這個類就必須是單例的
------------恢復內容開始------------
1.了解并上手
-
核心思想:保證一個類只有一個實體物件,并且提供了一個全域的訪問點,(外部通過這個訪問點來訪問該類的唯一實體)
-
全域訪問點:全域靜態欄位,就是宣告一個私有的靜態的屬性,型別是該類;因為靜態欄位是屬于類的,就可以保證只有一個實體;
-
私有建構式:保證外部無法實體化該類;
1 //常規中,先判斷這個實體是否已經被new 過了,如果沒有,讓這個這個靜態屬性Goods._instance等于這個實體;函式回傳的是這個實體 2 3 export default class Goods{ 4 private static _instance:Goods; 5 private num:number=3; 6 private constructor(){ //私有建構式 7 8 } 9 //常規寫法 10 public static getInstance():Goods{ 11 if(!Goods._instance) Goods._instance=new Goods(); 12 return Goods._instance; 13 } 14 //回傳這個實體, 15 //使用執行器函式get寫 16 //當獲取這個值的時候會呼叫這個函式 17 public static get _instance():Goods{ 18 return Goods._instance || (Goods._instance=new Goods()) 19 } 20 21 public run():void{ //實體方法 22 console.log("aa") 23 } 24 25 } 26 27 //外部執行方式 28 1.Goods.getInstance().run() //這樣會執行這個run方法,因為getInstance是個靜態方法,必須使用類呼叫,而這個靜態方法回傳的是一個實體,就能呼叫實體方法run(); 29 2.Goods.instance.run()//get執行方式 30 31 //每次呼叫都是同一個物件,所以Goods.instance=Goods.instance這兩個相等,都是一個實體;
2.使用場景
一個作業系統中可以存在多個列印任務,但我們只有一個列印機,同一時間只能有一個正在作業的任務,這個時候記憶體中列印機的這個類就必須是單例的
------------恢復內容結束------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457054.html
標籤:JavaScript
上一篇:有關TypeScript感觸集錦
下一篇:如何利用js來制作時間倒計時效果
