草庐IT

singletons

全部标签

c++ - 为什么在 Singleton 类中使用私有(private)析构函数?

我已经看到构造函数、复制构造函数、析构函数和赋值运算符保存在典型的单例类中的私有(private)范围内。例如classCMySingleton{public:staticCMySingleton&Instance(){staticCMySingletonsingleton;returnsingleton;}private:CMySingleton(){}//Privateconstructor~CMySingleton(){}CMySingleton(constCMySingleton&);//Preventcopy-constructionCMySingleton&operator

c++ - 如何对 Singleton 类进行单元测试 - C++?

在C++中对单例模式进行单元测试的方法有哪些?(请举例说明) 最佳答案 把单例的实现做成一个单独的类,在外面做一个实现“单例”的包装器。这样您就可以尽可能多地测试实现(除了微不足道且不必要的单例行为。classSingletonImpl{public:intdoit(double,double);};classSingleton{public:Singleton&instance(){...}intdoit(doublea,doubleb){impl->doit(a,b);}...private:SingletonImplimpl;

c++ - 这个 Singleton 实现有什么问题?

想法是在程序结束时删除C++中的Singleton。我们在类里面学习了这种实现方法:classSingleton{private:staticSingleton*the_singleton;protected:Singleton(){staticKeeperkeeper(this);/*CONSTRUCTIONCODE*/}virtual~Singleton(){/*DESTRUCTIONCODE*/}public:classKeeper{private:Singleton*m_logger;public:Keeper(Singleton*logger):m_logger(logger

c++ - 在使用 Clang 编译 CRTP Singleton 时,如何解决声称缺少 "explicit instantiation declaration"的问题?

我们正在使用curiouslyrecurringtemplatepattern实现单例。但是,在最近的Clang版本中,我们收到了-Wundefined-var-template警告。建议的修复方法是添加“显式实例化声明”。我试图这样做,但后来在定义单例模板类成员变量的编译单元中出现有关“实例化后的显式特化”的错误。解决此警告突出显示的问题的适当构造是什么?简化详细信息(已删除大部分逻辑,以制作MCVE):单例基础.hh:templateclassSingletonBase{public:staticT*get_instance(){if(!instance_){instance_=T

c++ - Meyers Singletons 的销毁顺序

到以下代码:classC{public:staticC&Instance(){staticCc;returnc;}~C(){std::cout我有几个问题:销毁调用的顺序是否定义明确?(即使类C和D定义在不同的源文件中)如果定义明确,此行为是否可移植? 最佳答案 这个构造的要点是强加一个构造顺序(因此也是一个销毁顺序)。建筑由于这些是局部静态变量,构造顺序由它们各自的Instance函数第一次被调用的顺序决定。因为这是在main中完成的,所以构建顺序是完全指定的。使顺序未指定的唯一方法是在不同翻译单元的静态初始化中使用它们,例如,如

objective-c - objective c singleton dispatch_once 实现更好?

看到很多人建议用dispatch_once来做单例:+(MyClass*)singleton{staticdispatch_once_tpred;staticMyClass*shared=nil;dispatch_once(&pred,^{shared=[[MyClassalloc]init];});returnshared;}当它并不真正支持真正的单例时为什么会更好,而且人们仍然可以使用init创建实例甚至在sharedInstance上进行发布?Apple的方法是防止所有这些情况http://developer.apple.com/library/mac/#documentatio

ios - iOS Objective-C 中 Singleton 类和 AppDelegate 类的关系

我在AppDelegate类(.h文件)中声明了一个变量,其值从多个ViewController类中更改。此外,我的AppDelegate类的单个应用程序范围实例在整个应用程序中共享,如下所示:AppDelegate*AppD=(AppDelegate*)[[UIApplicationsharedApplication]delegate];因为我可以从任何ViewController类访问在AppDelegate中声明的这个变量,在这种情况下,AppDelegate类是否作为Singleton类的示例?任何人都可以通过现实生活中的例子帮助找出单例类的用法吗?

database - Spark : run InputFormat as singleton

我正在尝试将键值数据库集成到Spark中并有一些问题。我是Spark初学者,阅读了很多书并运行了一些示例,但什么也没有复杂。场景:我正在使用小型hdfs集群将传入消息存储在数据库中。集群有5个节点,数据被拆分为5个分区。每个分区存储在单独的数据库文件中。因此每个节点都可以处理它自己的数据分区。问题:数据库软件的接口(interface)基于JNI,数据库本身是在C中实现。由于技术原因,数据库软件可以维护一次只有一个事件连接。只能有一个JVM进程已连接到数据库。由于这个限制,读取和写入数据库必须去通过相同的JVM进程。(背景信息:数据库嵌入到流程中。它是基于文件的,并且一次只能有一个进程

PHP Singleton 设计模式继承错误

来自下面的php单例类我正在尝试继承新的子类classSingletonChildextendsSingleton{}但是当我做测试的时候$obj=Singleton::getInstance();$obj_two=SingletonChild::getInstance();var_dump($obj===Singleton::getInstance());//bool(true)var_dump($obj===$obj_two);//false我遇到了phpfatalerror。PHPFatalerror:UncaughtError:CannotaccesspropertySingl

@singleton openejb bean出现的几个实例

我有一个看起来像这样的课:@SingletonpublicclassMySingletonImplimplementsMySingleton{@Overridepublicvoidinit(){...}@Overridepublicvoidtest(){...}}从ApplicationComposertestng看起来像这样的测试:@Listeners(ApplicationComposerListener.class)publicclassMyTest{@EJBMySingletonmySingleton;@Module@Classes(cdi=true,value={MySingleto