1700456878
1700456879
代码清单7-3 单例模式通用代码
1700456880
1700456881
public class Singleton{
1700456882
1700456883
private static final Singleton singleton=new Singleton();
1700456884
1700456885
//限制产生多个对象
1700456886
1700456887
private Singleton(){
1700456888
1700456889
}
1700456890
1700456891
//通过该方法获得实例对象
1700456892
1700456893
public static Singleton getSingleton(){
1700456894
1700456895
return singleton;
1700456896
1700456897
}
1700456898
1700456899
//类中其他方法,尽量是static
1700456900
1700456901
public static void doSomething(){
1700456902
1700456903
}
1700456904
1700456905
}
1700456906
1700456907
1700456908
1700456909
1700456911
设计模式之禅 7.3 单例模式的应用
1700456912
1700456913
7.3.1 单例模式的优点
1700456914
1700456915
❑由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建、销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显。
1700456916
1700456917
❑由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后用永久驻留内存的方式来解决(在Java EE中采用单例模式时需要注意JVM垃圾回收机制)。
1700456918
1700456919
❑单例模式可以避免对资源的多重占用,例如一个写文件动作,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作。
1700456920
1700456921
❑单例模式可以在系统设置全局的访问点,优化和共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理。
1700456922
1700456923
1700456924
1700456925
1700456926
设计模式之禅 7.3.2 单例模式的缺点
1700456927
[
上一页 ]
[ :1.700456878e+09 ]
[
下一页 ]