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() {
    }
    }
  • 相关阅读:
    `cd -`
    .git文件夹过大的解决方法
    避免对函数参数的修改
    2020年10月 修改Ant Design Pro底部版权信息的方法
    度目-人脸应用套件 文档中的坑
    "A little like that j-thing"
    Linux安装MySQL后设置密码
    append对len和cap的影响
    s := []int{0, 1, 2, 3, 8: 100}
    Python学习笔记
  • 原文地址:https://www.cnblogs.com/qingchun-com/p/7815248.html
Copyright © 2011-2022 走看看