我之前曾询问过什么是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
答案 0 :(得分:1)
这在基于原型的编程语言中很常见。我相信它在红宝石中被称为“导入”,但是自从我上次编写ruby之后已经有一段时间了,所以我不确定。
在js / ruby中你会写
object.bar = bar;
object.bar() // output: bar
并且它不是真正的模式,因为它只是一个基于原型的语言中的赋值(o.bar = bar)。我猜你的例子中的xxxx可能被称为原型或类似的东西(请参阅http://en.wikipedia.org/wiki/Prototype-based_programming,其中一种语言称为 proto )。