1
13
一个有趣的地方是,很容易制作一个基于原型的语言行为OO,但是很难制作一个基于原型的OO语言行为OO。
除了您提到的组合与继承之外,还不完全清楚OO作为原型会是什么样子。 原型语言使复杂的继承行为变得容易。你可以实现 multiple inheritance , mixin -就像行为,或者只是从一个对象中选择要添加到另一个对象中的内容。 Wikipedia's article 提到:“基于原型的编程的倡导者经常认为,基于类的语言鼓励开发模型,首先关注分类法和类之间的关系。相反,基于原型的编程被视为鼓励程序员专注于一些示例的行为,只是后来才担心将这些对象分类为原型对象,这些对象后来以类似于类的方式使用。” 这并不是说原型范式都是利弊。如果OO更具限制性,那是因为它选择了。如果你不小心的话,我可以看到所有的灵活性会给你带来什么麻烦。 |
2
3
原型是继承的一种形式,只是对象直接从其他对象继承属性和行为,而不是从继承其他类的类中获取属性和行为。 例如,在 prototype based language 比如,javascript。 |
3
1
对于感兴趣的人, NewtonScript 是一种双重语言:你有原型和课程。您可以选择是从类继承,从原型继承还是从两者继承。 |