单例类

原创 2015年07月09日 21:51:21

下面来看单例模式的结构图

image

从上面的类图中可以看出,在单例类中有一个构造函数 Singleton ,

但是这个构造函数却是私有的(前面是“ - ”符号),

然后在里面还公开了一个 GetInstance()方法,

通过上面的类图不难看出单例模式的特点,从而也可以给出单例模式的定义

单例模式保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。

public class Singleton 
    { 
        //定义一个私有的静态全局变量来保存该类的唯一实例 
        private static Singleton singleton;

        /// <summary> 
        /// 构造函数必须是私有的 
        /// 这样在外部便无法使用 new 来创建该类的实例 
        /// </summary>
 
        private Singleton() 
        { 
        }

       /// <summary> 
        /// 定义一个全局访问点 
        /// 设置为静态方法 
        /// 则在类的外部便无需实例化就可以调用该方法 
        /// </summary> 
        /// <returns></returns>
 
        public static Singleton GetInstance() 
        { 
         
   //这里可以保证只实例化一次 
            //即在第一次调用时实例化 
            //以后调用便不会再实例化
 
            if (singleton == null
            { 
                singleton = new Singleton(); 
            } 
            return singleton; 
        } 
    } 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

FMDB的自定义单例类的数据库demo

  • 2016年01月09日 18:02
  • 106KB
  • 下载

muduo网络库源码学习————线程本地单例类封装

muduo库中线程本地单例类封装代码是ThreadLocalSingleton.h 如下所示://线程本地单例类封装 // Use of this source code is governed b...

抵御反射机制调用单例类私有构造器

Java 单例模式一般有两种实现:     1.暴露静态final字段 Java代码  public class Elvis {          public st...

为什么在单例类中不能使用双重检查锁来初始化对象

在网上看到过好多篇文章在说明双重检查锁在多个线程初始化一个单例类时到底为什么不行,今天我们就来看一下问题到底出在了那里 下面我们直接进入主题,为什么使用双重检查锁,原因是因为在多线程初始化一个单例...

JAVA单例类的Double checked机制

单例类的使用在JAVA开发者中很

单例类

如果一个类始终只能创建一个实例,则这个类被称为单例类。在一些特殊情况下,系统会不允许自由创建某个类的对象,二十一只能为该类创建一个对象,此时就可以把该类的构造方法使用private修饰,将其所有的构造...

Java单例类

在某些时候,允许其他类自由创建某类的对象没有任何意义,还可能造成系统性能下降(因为频繁的创建对象,回收对象造成的系统开销问题)。这时我们要求一个类始终只能创建一个实例,不允许自由创建该类的对象,则称这...

【设计模式】【单例类】

单例类模板的简洁创建方法
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:单例类
举报原因:
原因补充:

(最多只允许输入30个字)