實現Singleton的兩種方式

2021-09-17 08:37:12 字數 367 閱讀 5277

法一:公有靜態成員final域

public class elvis 

}

優勢:api很容易知道這是乙個單例類,更簡單

注意:呼叫者可以借助accessbleobject.setaccssible方法通過反射機制呼叫私有構造器,因此如果想抵禦這種攻擊,可以修改構造器,讓它在被要求建第二個例項的時候丟擲異常

法二:公有的成員是靜態工廠方法

public class elvis 

public static elvis getinstance()

}優勢:我們可以在不改變api的前提下改變該類是否成為單例類的想法,更加的靈活

寫出Singleton的兩種形式

public class test01singleton 餓漢式 class singleton1 private static singleton1 instance1 newsingleton1 加靜態是因為要被靜態呼叫 public static singleton1 getinstance ...

單例模式 Singleton 的兩種實現方式

第一種方式 package com.test.util public class singletontest class singleton public static singleton getinstance 第二種實現方式 package com.spring public class sin...

Redhat nis client兩種接入方式

redhat nis client兩種接入方式 在redhat上nis client有兩種方式接入nis伺服器 etc nsswitch.conf和system config authentication 通過 etc nsswitch.conf的方式使用者只能通過yppasswd進行修改密碼且無法...