当我们实现Singleton类时,flex中的构造函数不能是私有的,因此其他类仍然可以是新的Singleton类。我找到了一个用“私有”构造函数实现Singleton类的解决方案:
package
{
public class Singleton
{
public static function get Instance():SingletonPrivate
{
return SingletonPrivate.Instance;
}
}
}
class SingletonPrivate
{
public static const Instance:SingletonPrivate = new SingletonPrivate();
public function SingletonPrivate()
{
}
public function getValue():String
{
return "Hello World";
}
}
答案 0 :(得分:3)
这只是ActionScript中的内部范围。理论上你也可以创建新的实例,因为你从不检查是否已经创建了一个实例。你永远不会仔细检查。
我建议尽量避免单身人士。与大多数iOC框架类似,您可以使用一个创建模型的上下文。在那里,您可以创建所有实例,并通过构造函数或setter在实例上注入它们。这是一种更清洁的方法,因为没有人必须考虑是否必须将一个类用作singelton。也可以在这样的上下文中创建视图控制器。单身人士并不是那么有用的人。