zoukankan      html  css  js  c++  java
  • 设计模式(三)---单例模式

    单例模式:只有一个对象,提供一个全局访问点

    1、通过静态内部类,获取单例
    /**
    * Created by wqc on 2017/10/14.
    * http://cantellow.iteye.com/blog/838473
    * 单例模式:只有一个对象,提供一个全局访问点
    * 1)Singleton类被装载了,instance不一定被初始化。因为SingletonHolder类没有被主动使用,
    * 只有显示通过调用getInstance方法时,才会显示装载SingletonHolder类,从而实例化instance
    *
    * 2)如果Singleton实现了java.io.Serializable接口,那么这个类的实例就可能被序列化和复原。
    * 不管怎样,如果你序列化一个单例类的对象,接下来复原多个那个对象,那你就会有多个单例类的实例。
    */
    public class Singleton {
    private Singleton()
    {

    }

    public static final Singleton getIntance()
    {
    return InnerSinglenton.singleton;
    }
    private static class InnerSinglenton{
    private static final Singleton singleton = new Singleton();

    }

    }

    2、通过枚举获取单例
    /**
    * Created by wqc on 2017/10/14.
    * 枚举单例:可以避免多线程同步问题,而且还能防止反序列化重新创建新的对象
    */
    public enum EnumSingleton {
    INSTANCE;
    public void whateverMethod() {
    }
    }
  • 相关阅读:
    无密码登录Linux
    php生成压缩包
    验证数字的正则表达式集
    初识MEF
    实现Linq.Distinct方法
    《Windows Internal》(2)
    《Windows Internals》(1)
    使用MEF宿主在一个应用程序上
    mysql错误记录集合
    python基本知识之数据类型
  • 原文地址:https://www.cnblogs.com/qingchun-com/p/7815248.html
Copyright © 2011-2022 走看看