创建型-单例模式(SingletonPattern)-创新互联

1.定义

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

峨眉山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

网上其实有很多实现比如:饿汉模式、懒汉模式等等这里总结一下:

  1. 懒汉式(可分线程安全和不安全)
  2. 饿汉式
  3. 双检锁/双重校验锁
  4. 登记式/静态内部类
  5. 枚举

一般情况下,不建议使用第 1 种懒汉方式,建议使用第 2 种饿汉方式。
只有在要明确实现 lazy loading 效果时,才会使用第 4 种登记方式。如果涉及到反序列化创建对象时,可以尝试使用第 5 种枚举方式。如果有其他特殊的需求,可以考虑使用第 3 种双检锁方式。

代码实现饿汉式:

public class Singleton {private static final Singleton singleton = new Singleton();
//限制产生多个对象
 private Singleton(){}
 //通过该方法获得实例对象
 public static Singleton getSingleton(){return singleton;
 } 
 //类中其他方法,尽量是 static
 public static void doSomething(){}
}
2. 使用场景

● 要求生成唯一序列号的环境;
● 在整个项目中需要一个共享访问点或共享数据,例如一个 Web 页面上的计数器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确保是线程安全的;
● 创建一个对象需要消耗的资源过多,如要访问 IO 和数据库等资源;
● 需要定义大量的静态常量和静态方法(如工具类)的环境,可以采用单例模式(当然,也可以直接声明为 static 的方式)。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页名称:创建型-单例模式(SingletonPattern)-创新互联
分享URL:http://myzitong.com/article/ccposj.html