天天看點

java中getInstance() 的了解

getInstance方法的主要作用

主函數當中使用此類的getInstance()函數,即可得到系統目前已經執行個體化的該類對象,若目前系統還沒有執行個體化過這個類的對象,則調用此類的構造函數

對象執行個體化

對象的執行個體化方法,也是比較多的,最常用的方法是直接使用new。而這是最普通的,如果要考慮到其它的需要,如單執行個體模式,層次間調用等等。

直接使用new就不是最好的設計,這時候需要使用間接使用new,即getInstance方法。這是一個設計方式的代表,而不僅僅指代一個方法名。

GetInstance與new差別:

new的使用

如Object object = new Object(),這時候,就必須要知道有第二個Object的存在,而第二個Object也常常是在目前的應用程式域中的,可以被直接調用的

GetInstance的使用

在主函數開始時調用,傳回一個執行個體化對象,此對象是static的,在記憶體中保留着它的引用,即記憶體中有一塊區域專門用來存放靜态方法和變量,可以直接使用,調用多次傳回同一個對象。

兩者差別對照

大部分類(非抽象類/接口/屏蔽了constructor的類)都可以用new,new就是通過生産一個新的執行個體對象,或者在棧上聲明一個對象 ,每部分的調用用的都是一個新的對象。

getInstance是少部分類才有的一個方法,各自的實作也不同。

getInstance在單例模式(保證一個類僅有一個執行個體,并提供一個通路它的全局通路點)的類中常見,用來生成唯一的執行個體,getInstance往往是static的。

(1) 對象使用之前通過getInstance得到而不需要自己定義,用完之後不需要delete;

繼續閱讀