actionscript-3 - 为什么 AS3 版本的 Singleton 中没有私有(private)构造函数?

标签 actionscript-3 apache-flex actionscript flex3

我一头雾水:在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/

相关文章:

actionscript-3 - AS3如何使用appendBytes限制AAC流音频的NetStream缓冲

apache-flex - 关于TextField中htmlText的性能问题

apache-flex - 如何使用 && 为 Flex 中的属性指定多个条件

actionscript - $(var) 在 Actionscript 中是什么意思?

jQuery 淡入容器、淡出并淡入下一个容器

actionscript-3 - 错误后我应该在 URLLoader 上调用 close() 吗?

apache-flex - 服务对象返回

actionscript-3 - Actionscript 3 ByteArray 异或?

json - 如何解析JSON(AS3)

flash - 如何查看 Flash 源代码?