美文网首页
如何优雅实现单例类

如何优雅实现单例类

作者: crazyhank | 来源:发表于2022-03-05 21:55 被阅读0次

在项目中使用单例类是个比较通用的需求,比如我们定义了一个类A,我们想实现一个类A的单例模式。

方法1:直接在类A的定义中实现
class A {
public:
  static A& Get()
  {
    static A instance;
    return instnace;
  }
private:  // 将A的构造函数声明为private,这样就避免在外部产生A对象实例的可能性。
  A() {}
  ~A() {}
};

// 调用A单例对象成员函数
A::Get().xxx; // 单例实例对象
方法2:通过一个模板类
template<typename T>
class Singleton {
public:
  static T& Get()
  {
    static T instance;
    return instance;
  }
};

// 调用A单例对象成员函数
Singleton<A>::Get().xxxx;

总结:方法2的好处是可以用类模板进行泛化,如果你的项目场景中会涉及多个类的单例需求,可以使用该方法,但是这里有个问题是它没办法阻止用户自己创建T类型对象。

相关文章

  • 如何优雅实现单例类

    在项目中使用单例类是个比较通用的需求,比如我们定义了一个类A,我们想实现一个类A的单例模式。 方法1:直接在类A的...

  • python面试题-2018.1.30

    问题:如何实现单例模式? 通过new方法来实现单例模式。 变体: 通过装饰器来实现单例模式 通过元类来创建单例模式...

  • Swift严格的单例写法

    相比OC,Swift有很优雅的实现单例的写法。 实现 单例类Tools 客户端调用: 说明 当尝试使用 这种方法去...

  • 如何对枚举类型实现的单例模式进行mock

    最近在工作中使用了用枚举实现的单例,那么如何对该种单例模式实现mock呢? 单例类如下(Singleton.cla...

  • 单例模式

    什么是单例模式? 一个类只允许创建一个实例,那个类就是单例类。这个模式就是单例模式。单例模式实现方式:饿汉式:实现...

  • 单例模式

    1.利用装饰器实现单例模式 2.修改new方法实现单例模式 3.利用元类实现单例模式 总结: 用装饰器和元类实现的...

  • Kotlin中的单例实现原理

    1.使用Object关键字进行单例类声明 2.单例类的使用 3. 单例类的实现原理

  • Python实现单例模式

    1.使用__new__实现 2.使用装饰器实现单例 3.类装饰器实现单例 4.元类实现

  • kotlin-5、类与对象

    创建空类 构造函数 调用构造函数 继承 接口 实现接口 data类 最简单的单例 自己实现单例

  • Java学习笔记2

    Singleton / 不可变类 / 缓存不可变类 的实现 Singleton(单例类) 单例类用的地方很多,如果...

网友评论

      本文标题:如何优雅实现单例类

      本文链接:https://www.haomeiwen.com/subject/icgbrrtx.html