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() {
    }
    }
  • 相关阅读:
    shell去重
    JDBC源码解析
    try catch finally
    URL
    域名与IP地址的联系与区别
    C++stack
    C++vector
    单链表常见面试题(C语言实现)
    数据库limit子句
    strcpy和memcpy的区别
  • 原文地址:https://www.cnblogs.com/qingchun-com/p/7815248.html
Copyright © 2011-2022 走看看