扩展Singleton类?

JD *_*cks 1 oop singleton actionscript-3

有没有一种方法,使像一个模板单例类,这样当你扩展它,扩展类也是一个单例类,所以我可以很快做出一个新的单例类只是我的扩展模板单身类?如果重要的话,我正在使用ActionScript 3.0.

谢谢.

And*_*are 7

单例模式的设计使得类型不应该被继承.我不熟悉ActionScript,但是具有也可以扩展的单例类型似乎是一个错误.

如果您这样做,那么这意味着父类型和子类型都可以将它们的单个实例加载到同一个应用程序中.由于类型,多形态,类型Parent,Parent在技术上不再是单身.

  • "单身模式的设计方式不应该继承类型." 这根本不是真的.它被设计为仅实例化一次. (2认同)
  • @Luke:你怎么能拥有一种类型,其中只有一个实例可以存在并且具有相同类型的其他类型的基类?这个"单身人士"的子类型的实例不会是"单身人士"的第二个实例吗? (2认同)

Eli*_*jah 5

首先,我不能强调这一点 - 确保你使用Singleton不是Singleton作为反模式.

我不太了解ActionScript对它的智能评论,但通常将单例实例存储为类中的静态变量.这意味着您的子类将继承父级的静态变量,因此也是实例!因此,考虑到这一点,你将无法创建一个insta-singleton.

然而,有一两件事可以做的就是让一个Singleton接口,如果你所有的单身人士需要一组通用的功能,比如析构函数一个干净的卸载等任何其他黑客,使这项工作(我能想到的一些) -我不确定告诉你这对我来说是道德的,因为Singletons更好地用于稀疏(恕我直言).