我一头雾水:在AS3中,为什么要保留Singleton类构造函数public
而不是 private
,就像在 Java 中一样?如果我们保留构造函数 public
,那么我们就可以直接从外部访问了!
请查看 this example 中的模型部分.
最佳答案
Actionscript 3 不支持私有(private)构造函数。
为了强制执行单例模式,如果已经创建了单例实例,许多开发人员会导致构造函数引发异常。这将导致运行时错误,而不是编译时错误,但它确实防止了单例的不当使用。
例子:
public static var instance:MySingleton;
public MySingleton(){
if (instance != null) {
throw new Error("MySingleton is a singleton. Use MySingleton.instance");
}else {
instance = this;
}
}
关于actionscript-3 - 为什么 AS3 版本的 Singleton 中没有私有(private)构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233868/