Vala:如何引用摘要 class' subclass?
Vala: How to refer an abstract class' subclass?
考虑以下几点:
abstract class Singleton : Object {
private static Singleton _instance = null;
public static Singleton instance() {
if (instance == null) {
instance = // constructor call goes here
}
return instance;
}
}
class Foo : Singleton {
Foo() {}
}
var test = Foo.instance();
我想抽象地实现一个单例class。我的问题是:如何从 Singleton.instance()
?
引用 subclass 构造函数
继承和单例模式不能很好地结合:
C++ Singleton class - inheritance good practice
你为什么不直接让你的 Foo class 静态(让所有成员都静态):
public class Foo {
// Static constructor
public static Foo() {}
// Static methods
public static void bar () {}
// Static attributes, etc.
}
这通常也有效。如果您的 "singleton" 有一个昂贵的构造并且您想避免它总是被构造,它就不会很好地工作。
考虑以下几点:
abstract class Singleton : Object {
private static Singleton _instance = null;
public static Singleton instance() {
if (instance == null) {
instance = // constructor call goes here
}
return instance;
}
}
class Foo : Singleton {
Foo() {}
}
var test = Foo.instance();
我想抽象地实现一个单例class。我的问题是:如何从 Singleton.instance()
?
继承和单例模式不能很好地结合:
C++ Singleton class - inheritance good practice
你为什么不直接让你的 Foo class 静态(让所有成员都静态):
public class Foo {
// Static constructor
public static Foo() {}
// Static methods
public static void bar () {}
// Static attributes, etc.
}
这通常也有效。如果您的 "singleton" 有一个昂贵的构造并且您想避免它总是被构造,它就不会很好地工作。