Flex Singleton解决方案

时间:2012-06-06 05:34:52

标签: flex actionscript singleton

当我们实现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";
    }
}

1 个答案:

答案 0 :(得分:3)

这只是ActionScript中的内部范围。理论上你也可以创建新的实例,因为你从不检查是否已经创建了一个实例。你永远不会仔细检查。

我建议尽量避免单身人士。与大多数iOC框架类似,您可以使用一个创建模型的上下文。在那里,您可以创建所有实例,并通过构造函数或setter在实例上注入它们。这是一种更清洁的方法,因为没有人必须考虑是否必须将一个类用作singelton。也可以在这样的上下文中创建视图控制器。单身人士并不是那么有用的人。