错误的看法有人说,new一次不就行了吗?保证不new第二次就行!
这样做不好,如果要每一个调用该实例的客户程序都保证只new一次,是否会很麻烦?也很不安全。我们将这个“只生成一个实例”的需求交由类的设计者本身保证,那么调用该实例的若干客户程序会省下大堆麻烦和安全隐患。
Demo:
1 应用在单线程中,非多线程,显而易见,如果线程B在线程A没有new之前执行判断语句
if( instance == null ),则线程B又会new一个instance。
2 Singleton只考虑了对象创建管理,没考虑垃圾回收。这并不是该模式的局限性,而是没必要考虑
,只有一个实例,占用不了多少资源。如果类大得不回收不行,则要重构了。
3 一般不支持序列化(序列化的实现还不太明白,这里先跳过去)
多线程的应用:
希望各位帮帮忙解答:
问题2:有什么办法在单重判断的时候显示出The different instance吗?