template<typename T>
class Singleton
{
public:
static T& GetInstance()
{
static T instance;
return instance;
}
Singleton(T&&) = delete;
Singleton(const T&) = delete;
void operator= (const T&) = delete;
protected:
Singleton() = default;
virtual ~Singleton() = default;
};
switch
,通过判断输入的参数返回需要生成的对象clone()
接口;实现该功能的对象即为原型模式clone()
接口中只需要返回一个参数为原对象的new新构建的对象即可accept
接口,接受一个访问者类accept
接口的实现即为调用访问者类中实现当前具体类操作的函数accept
接口,然后会通过访问者类执行与当前类相应的操作