1700457737
1700457738
public void doSomething(){
1700457739
1700457740
//业务处理
1700457741
1700457742
}
1700457743
1700457744
}
1700457745
1700457746
Singleton保证不能通过正常的渠道建立一个对象,那SingletonFactory如何建立一个单例对象呢?答案是通过反射方式创建,如代码清单8-21所示。
1700457747
1700457748
代码清单8-21 负责生成单例的工厂类
1700457749
1700457750
public class SingletonFactory{
1700457751
1700457752
private static Singleton singleton;
1700457753
1700457754
static{
1700457755
1700457756
try{
1700457757
1700457758
Class cl=Class.forName(Singleton.class.getName());
1700457759
1700457760
//获得无参构造
1700457761
1700457762
Constructor constructor=cl.getDeclaredConstructor();
1700457763
1700457764
//设置无参构造是可访问的
1700457765
1700457766
constructor.setAccessible(true);
1700457767
1700457768
//产生一个实例对象
1700457769
1700457770
singleton=(Singleton)constructor.newInstance();
1700457771
1700457772
}catch(Exception e){
1700457773
1700457774
//异常处理
1700457775
1700457776
}
1700457777
1700457778
}
1700457779
1700457780
public static Singleton getSingleton(){
1700457781
1700457782
return singleton;
1700457783
1700457784
}
1700457785
1700457786
}
[
上一页 ]
[ :1.700457737e+09 ]
[
下一页 ]