面試官:Zookeeper叢集怎麼搭建?
阿新 • • 發佈:2022-04-04
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.使用場景
一個作業系統中可以存在多個列印任務,但我們只有一個印表機,同一時間只能有一個正在工作的任務,這個時候記憶體中印表機的這個類就必須是單例的