任何使用actionscript 3.0编程的人都肯定注意到它缺乏对私有构造函数和抽象类的支持.有办法解决这些缺陷,比如从应该是抽象的方法中抛出错误,但是这些工作很烦人而且不是很优雅.(从应该是抽象的方法中抛出错误是运行时检查,而不是编译时,这可能导致很多挫折).
我知道actionscript 3.0遵循当前的ECMAscript标准,这就是它缺乏私有构造函数的原因,但是抽象类呢,它们不是在ECMAscript标准中吗?
我想更具体的问题是为什么ECMAscript标准不支持私有构造函数?这是未来可以期待的事情吗?
我一直想知道退出这个问题,任何见解都会非常感激.
私有构造函数和抽象类不是"好的OOP元素".他们是源于C++的好黑客.在更动态的语言中,通常不需要它们.
特别是抽象类是完全不需要的,因为您不必在祖先中声明接口以符合接口.实际上,您甚至不必从共同的祖先继承来使用某些多态性.
我不是说AS没有那样的东西会更好; 相反,你应该用你正在使用的语言思考,而不是试图从你习惯的任何东西翻译.