-4

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

1 回答 1

3

这只是ActionScript内部的范围。此外,理论上您也可以创建新实例,因为您从不检查是否已经创建了实例。你从不仔细检查。

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

于 2012-06-06T05:58:40.230 回答