Что вы называете уровнем объекта, эквивалентным системе Mixin / Traits, есть ли для него имя Pattern?

Ранее я спрашивал о том, что такое миксин, и начал понимать суть этого паттерна. Но мне стало интересно, существует ли общее имя шаблона для выполнения чего-то вроде Mixins на уровне объектов, а не на уровне классов.

Псевдокод (на каком-то несуществующем языке):

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

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

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

  object.bar() #output: bar

Я знаю, что такие вещи могут быть сделаны на нескольких языках, так или иначе, но мне интересно, каково будет «стандартное» имя для функциональности, которую представляет xxxx, и как называется этот шаблон, если он есть ,

Спасибо!

Изменить: Расширяя ответ Финнссона, я думаю, что-то вроде этого может быть другой случай этого будет:

 object.xxxx(OtherClass)
 object.otherfoo()

Будет ли подходить конкатенация?

Цитата: «Конкатенация: при чистом прототипировании, которое также называется конкатенационным прототипом ...» - Википедия

10.12.2008 11:39:32
1 ОТВЕТ
РЕШЕНИЕ

Это распространено в основанных на прототипах языках программирования. Я верю, что это называется «импорт» в ruby, но прошло некоторое время с тех пор, как я последний раз программировал ruby, поэтому я не уверен.

В js / ruby ​​вы бы написали

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

и чем он не является реальным паттерном, так как это просто присваивание (o.bar = bar), имеющее смысл в языке, основанном на прототипах. Я предполагаю, что xxxx в вашем примере можно назвать прототипом или чем-то подобным (см. Http://en.wikipedia.org/wiki/Prototype-based_programming, где язык называет этот прото ).

1
10.12.2008 12:02:31