單例模式及getInstance 的用法

2022-03-15 16:35:36 字數 897 閱讀 5740

一般在單例模式下使用.getinstance()建立物件;但並不是所有有私有構造方法,對外通過getinstance方法提供

例項的情況就是單例模式。

注:單例模式:乙個類有且只有乙個例項。

1,乙個私有的構造器

2,乙個私有的該類型別的變數

3,必須有乙個共有的返回型別為該類型別的方法,用來返回這個唯一的變數

eg:public class singleton    //private 只能在自己內部供自己去訪問

private static singleton instance=new singleton();//在自己內部定義自己的乙個例項

public static singleton getinstance()

}判斷singelton乙個類是否是單例模式:

class test

}getinstance與new區別:

new的使用:如object object = new object(),這時候,就必須要知道有第二個public的object構造方法的

存在。getinstance的使用:在主函式開始時呼叫,返回乙個例項化物件,此物件是static的,在記憶體中保留著它

的引用,即記憶體中有一塊區域專門用來存放靜態方法和變數,可以直接使用,呼叫多次返回同乙個物件。

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

(2)new 一定要生成乙個新物件,分配記憶體;getinstance() 則不一定要再次建立,它可以把乙個已存在的

引用給你使用,這在效能上優於new;

(3) new建立後只能當次使用,而getinstance()可以跨棧區域使用,或者遠端跨區域使用。所以getinstance()

通常是建立static靜態例項方法的。

單例模式及面試

指乙個類只有乙個例項 需要 1 私有的構造方法,使其不能在類的外部通過new關鍵字例項化該類物件。2 私有的靜態例項化物件,並且將其封裝為private static型別。3 對外提供乙個公共的訪問方法,並返回該例項物件。第 1 種 餓漢式 立即載入 餓漢式就是 使用類的時候已經將物件建立完畢 不管...

單例模式 單例模式

餓漢式 急切例項化 public class eagersingleton 2.宣告靜態成員變數並賦初始值 類初始化的時候靜態變數就被載入,因此叫做餓漢式 public static eagersingleton eagersingleton new eagersingleton 3.對外暴露公共的...

IOS單例模式及單例模式的優缺點

單例模式的意思就是只有乙個 例項。單例模式確保某乙個類只有乙個例項,而且自行 例項化並向整個系統提供這個例項。這個類稱為單例類。import inte ce singleton nsobject singleton getinstance end implementation singleton s...