代码之家  ›  专栏  ›  技术社区  ›  Anders Rune Jensen

原型与类[关闭]

  •  10
  • Anders Rune Jensen  · 技术社区  · 16 年前

    Steve Yegge最近发布了 interesting blog post 他所说的通用设计模式。在那里,他详细地使用原型作为建模工具,而不是类。与继承相比,我喜欢这样引入较少的耦合。但这也是一个可以通过类得到的东西,通过按照其他类实现类,而不是继承。其他人是否有使用原型的成功案例,并且可能有助于解释与类相比,使用原型的优势在哪里。我想归根结底是静态建模还是动态建模,但是更多的例子会很受欢迎。

    3 回复  |  直到 15 年前
        1
  •  13
  •   Corbin March    15 年前

    一个有趣的地方是,很容易制作一个基于原型的语言行为OO,但是很难制作一个基于原型的OO语言行为OO。

    除了您提到的组合与继承之外,还不完全清楚OO作为原型会是什么样子。

    原型语言使复杂的继承行为变得容易。你可以实现 multiple inheritance , mixin -就像行为,或者只是从一个对象中选择要添加到另一个对象中的内容。

    Wikipedia's article 提到:“基于原型的编程的倡导者经常认为,基于类的语言鼓励开发模型,首先关注分类法和类之间的关系。相反,基于原型的编程被视为鼓励程序员专注于一些示例的行为,只是后来才担心将这些对象分类为原型对象,这些对象后来以类似于类的方式使用。”

    这并不是说原型范式都是利弊。如果OO更具限制性,那是因为它选择了。如果你不小心的话,我可以看到所有的灵活性会给你带来什么麻烦。

        2
  •  3
  •   Andru Luvisi    16 年前

    原型是继承的一种形式,只是对象直接从其他对象继承属性和行为,而不是从继承其他类的类中获取属性和行为。

    例如,在 prototype based language 比如,javascript。

        3
  •  1
  •   CesarGon    15 年前

    对于感兴趣的人, NewtonScript 是一种双重语言:你有原型和课程。您可以选择是从类继承,从原型继承还是从两者继承。