我们如何扩展单例方法以在C ++中允许多个实例。例如,我们如何使用单例模式来确保创建或允许一个类中最多5个对象
最佳答案
单例模式不能保证最多可以创建一个对象,它会在程序初始化时创建一个对象,并在程序终止时销毁它。
使用工厂函数来控制代表有限资源的对象的创建。
class limited {
private:
static int instance_count;
limited() { // users cannot directly call the constructor
++ instance_count;
}
limited( const limited & ); // do not implement so users cannot copy
public:
~limited() {
-- instance_count;
}
static limited make() { // this factory function must be used instead
if ( limited::instance_count >= 5 ) {
throw std::runtime_error( "some kind of overflow" );
}
return limited();
}
};
关于c++ - 扩展单例模式以允许多个实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8419608/