单例类
来源:互联网 发布:苹果手机朗读软件 编辑:程序博客网 时间:2024/06/08 11:32
单例类
在某些特殊场景下,不允许一个类自由创建对象,只允许该类创建一个对象,这个类称为单例类。
因此,该类的构造器需要用private隐藏起来,这样就需要提供一个public的static方法 (调用该方法前还不存在对象,因此调用该方法只能是类) 作为该类的访问点,用于创建对象。
另外,该类还需要用一个成员变量缓存已经创建的对象,来确保对象是否已经创建和只创建了一个,该成员变量需要被上面的静态方法访问,所以用static修饰。
下面来创建一个单例类
class Singleton { // 使用一个类变量来缓存曾经创建的实例 private static Singleton instance; // 将构造器使用private修饰,隐藏该构造器 private Singleton() { } // 提供一个静态方法,用于返回Singleton实例 // 该方法可以加入自定义的控制,保证只产生一个Singleton对象 public static Singleton getInstance() { // 如果instance为null,表明还不曾创建Singleton对象 // 如果instance不为null,则表明已经创建了Singleton对象, // 将不会重新创建新的实例 if (instance == null) { // 创建一个Singleton对象,并将其缓存起来 instance = new Singleton(); } return instance; }}public class SingletonTest { public static void main(String[] args) { // 创建Singleton对象不能通过构造器, // 只能通过getInstance方法来得到实例 Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1 == s2); // 将输出true,因为两次产生的对象是同一个对象 }}
0 0
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类。
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- 单例类
- Eclipse 和 Android Studio 常用快捷键对比
- 统保APP技术服务支持
- Session分布式共享 = Session + Redis + Nginx
- 安装 配置SharePoint Server 2016 的硬件和软件要求
- C++:学习网站收录
- 单例类
- delphi中DoubleBuffered用途
- PHP解耦的三重境界(浅谈服务容器)
- QtCreator选择新建项目类别,各项目类别介绍
- Unity中Vive Controller手柄模型渲染流程和模型替换
- linux的nohup命令的用法。
- apache kafka log 存储格式
- TP-link在命令行模式下的一些基本设置
- 搬家了