1

我之前问过 Mixins 是什么,并且已经开始了解这种模式的含义。但这让我想知道是否有一个通用的模式名称可以在对象级别而不是类级别上执行诸如 Mixins 之类的操作。

伪代码(在一些不存在的语言中):

  Class MyClass
  {
     function foo()
     {
        print("foo")
     }
  }

  function bar()
  {
     print("bar")
  }

  object = MyClass.new()
  object.xxxx(bar)

  object.bar() #output: bar

我知道这样的事情可以用多种语言以一种或另一种方式完成,但我想知道 xxxx 所代表的功能的“标准”名称是什么,以及这种模式的名称是什么,如果有的话.

谢谢!

编辑:扩展 finnsson 的答案我想这样的事情可能是另一种情况:

 object.xxxx(OtherClass)
 object.otherfoo()

串联合适吗?

引用:“串联:在纯原型下,也称为串联原型......” -wikipedia

4

1 回答 1

1

这在基于原型的编程语言中很常见。我相信它在红宝石中被称为“导入”,但自从我上次编写红宝石以来已经有一段时间了,所以我不确定。

在 js/ruby 中你会写

object.bar = bar;
object.bar() // output: bar

而且它不是真正的模式,因为它只是一个赋值(o.bar = bar),在基于原型的语言中非常有意义。我猜你的例子中的 xxxx 可以被称为原型或类似的东西(见http://en.wikipedia.org/wiki/Prototype-based_programming其中一种语言称为这个原型)。

于 2008-12-10T12:02:31.837 回答