设计模式——单例设计模式(C++实现)

 1 #ifndef  SINGLETONHOLDER_INC
 2 #define  SINGLETONHOLDER_INC
 3
 4 template<class T>
 5 class SingletonHolder
 6 {
 7 public:
 8     static T* Instance()
 9     {
10         if(!pInstance_)
11             pInstance_=new T;
12         return pInstance_;
13     }
14 private:
15     SingletonHolder(){};
16     SingletonHolder(const SingletonHolder&);
17     SingletonHolder& operator=(const SingletonHolder&);
18     ~SingletonHolder(){};
19     static T* pInstance_;
20 };
21
22 template<class T>
23 T* SingletonHolder<T>::pInstance_=0;
24
25
26 #endif
27
28
29 #ifndef INS
30 #define INS SingletonHolder<CGlobal>::Instance()
31 #endif

结合模板和宏定义,可以很方便的单例化任何类

时间: 2024-10-18 09:01:49

设计模式——单例设计模式(C++实现)的相关文章

Java软件设计模式------单例设计模式

Java软件设计模式一共分为23种; 一般常用的有: 单例设计模式 装饰设计模式 工厂设计模式 单例设计模式(以后的用处:spring框架IOC,默认创建的对象都是单例的): 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 单例设计模式分为两种(饿汉式和懒汉式): ①饿汉式(常用): 特

java设计模式--单例设计模式

java中共有21种设计模式,其中面试中常问的是单例设计模式: 单例设计模式有两种常用的方式:1.懒汉式:1)先私有化构造函数,让此类不能被实例化:(private 类名(){}):2)在类中自己实例化一个空的对象:(private static 类名  对象名=null;):3)构造一个方法,返回本类的对象:在中间增加一个判断语句,如果进来的对象是个空值,就new一个实例化,否则直接返回此对象: 例如: /** * 懒汉式 * @author chenjun *2017-5-2上午9:16:0

java软件设计模式——单例设计模式中的【饿汉式】与 【懒汉式】示例

以下为单例设计模式中的两种经典模式的代码示意: 1 单例设计模式(spring框架IOC,默认创建的对象都是单例的): 2 饿汉式: 3 public class SingleClass { 4 private SingleClass(){} //私有化构造方法 不能new对象 5 private static final SingleClass s=new SingleClass(); 6 //返回本类对象 7 public static SingleClass getInstance(){

Java设计模式—单例设计模式(Singleton Pattern)全然解析

转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用的最多的设计模式,可能有非常多人会写几种设计模式.那么你是否知道什么是设计模式?为什么会有单例设计模式即它的作用是什么?单例模式有哪些写法?对于这种问题.可能有部分童鞋并不能非常好的回答,没关系今天就和大家一起来具体的学习下单例设计模式,相信通过学习本篇你将对单例设计模式有个具体的理解. 如有谬误欢

iOS常用设计模式——单例设计模式

单例设计模式详解 单例设计模式详解 基本概念 在IOS中使用单例模式的情况 非ARC环境创建单例模式的基本步骤 非ARC环境具体代码实现 ARC环境创建单例模式的基本步骤 基本概念 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问 在IOS中使用单例模式的情况 1.如果说创建一个对象会耗费很多系统资源,那么此时采用单例模式,因为只需要一个实例,会节省alloc的时间 2.在IOS开发中,如果很多模

Java设计模式——单例设计模式

单例设计模式 概述 ? 某个类有且只能有一个对象,如:用这个对象记录只有一个用户的信息 饿汉式 步骤 private构造方法 设计一个private static的当前类的对象,并new 提供一个static方法,返回一个当前类的对象 代码 /** * 单例模式 * 饿汉式 */ public class Program1 { public static void main(String args[]) { User user = User.getInstance(); //测试部分 for (

【Java编程】 设计模式 -- 单例设计模式

思想: 为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 代码体现: 将构造函数私有化 在类中创建一个本类对象 提供一个方法可以获取到该对象 代码一 先初始化对象 称为:饿汉式 Single类一进内存,就已经创建好了对象. public class SingleModeDemo { public static void main(String[] args){

java-并发编程-多线程设计模式-单例设计模式的七种写法

1.饿汉式 public class SingleInstance{ private static final SingleInstance instance = new SingleInstance(); private SingleInstance(){}; public static SingleInstance getInstance(){ return instance; }; } 这种写法的单例模式是最简单的设计模式,基本上大部分开发者都会写. 2.懒汉式 3.懒汉式+同步 4.Du

[设计模式] 单例设计模式

1.懒汉式(内部类式) /** * Created by pmx on 14-9-14. */ public class Singleton { private Singleton() {} public static Singleton getInstance() { return SingletonHolder.instance; } static class SingletonHolder { private static Singleton instance = new Singleto