可继承单例的实现,在java中只能使用登记式单例模式,但是这样子类就必须公开构造方法。又违背了单例的原则。
nnd。贴个cpp和c#的可继承单例类吧。java。。。。。。。。。。。。。。。template <class T>
class Singleton
{
public:
~Singleton(void) {};
static T& GetService(void) {return *Instance;}
protected:
Singleton<T>(void) {};
static T* Instance;
};
public class A<T> { public static T GetInstance() { return msInstance; } static T msInstance; } public class B : A<B> { }
cpp的是网上找的,c#的是请教别人得来的。反正拿来主义了,要继续折腾java,看看还有其他办法没。
用java模仿c#的实现,但java无法定义静态泛型变量,并且静态方法中无法使用类定义的泛型。这确实够恶心的。第一次对java这么绝望。