Frage

Ich habe zuvor gefragt, was Mixins sind, und habe begonnen, den Kern dessen zu verstehen, was das Muster bedeutet.Aber ich habe mich gefragt, ob es einen gemeinsamen Musternamen gibt, um so etwas wie Mixins auf Objektebene und nicht auf Klassenebene auszuführen.

Pseudocode (in einer nicht existierenden Sprache):

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

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

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

  object.bar() #output: bar

Ich weiß, dass solche Dinge auf die eine oder andere Weise in mehreren Sprachen erledigt werden können, aber ich frage mich, wie der „Standard“-Name für die Funktionalität lautet, die xxxx darstellt, und wie dieses Muster heißt, falls es eines gibt .

Danke!

Bearbeiten:Wenn ich Finnssons Antwort erweitere, denke ich, dass so etwas ein weiterer Fall davon sein könnte:

 object.xxxx(OtherClass)
 object.otherfoo()

Wäre eine Verkettung angemessen?

Zitat:"Verkettung:Unter reinem Prototyping versteht man auch verkettete Prototypen …“ -wikipedia

War es hilfreich?

Lösung

Dies ist in prototypbasierten Programmiersprachen üblich.Ich glaube, dass es in Ruby „Import“ heißt, aber es ist schon einige Zeit her, seit ich Ruby das letzte Mal programmiert habe, also bin ich mir nicht sicher.

In js/ruby würden Sie schreiben

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

und dann ist es kein wirkliches Muster, da es nur eine Zuweisung (o.bar = bar) ist, die in einer prototypbasierten Sprache vollkommen Sinn macht.Ich denke, xxxx könnte in Ihrem Beispiel als Prototyp oder etwas Ähnliches bezeichnet werden (siehe http://en.wikipedia.org/wiki/Prototype-based_programming wo eine Sprache dies nennt Proto).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top