Come si chiama un equivalente a livello di oggetto del sistema Mixin/Traits, esiste un nome Pattern per questo?

StackOverflow https://stackoverflow.com/questions/355786

Domanda

In precedenza avevo chiesto cosa fossero i Mixin e ho iniziato a capire il significato dello schema.Ma mi sono chiesto se esiste un nome di modello comune per fare qualcosa come Mixins a livello di oggetto anziché a livello di classe.

Pseudo codice (in qualche linguaggio inesistente):

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

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

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

  object.bar() #output: bar

So che cose del genere possono essere fatte in diverse lingue, in un modo o nell'altro, ma mi chiedo quale sarebbe il nome "standard" per la funzionalità rappresentata da xxxx e qual è il nome di questo modello, se ce n'è uno .

Grazie!

Modificare:Espandendo la risposta di Finnsson, immagino che qualcosa del genere potrebbe essere un altro caso in cui sarebbe:

 object.xxxx(OtherClass)
 object.otherfoo()

Concatenare sarebbe appropriato?

Citazione:"Concatenazione:Sotto la prototipazione pura, chiamata anche prototipi concatenativi..." -wikipedia

È stato utile?

Soluzione

Questo è comune nei linguaggi di programmazione basati su prototipi.Credo che si chiami "import" in Ruby ma è passato un po' di tempo dall'ultima volta che ho programmato Ruby quindi non ne sono sicuro.

In js/ruby scriveresti

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

e poi non si tratta di uno schema reale, poiché è solo un compito (o.bar = bar) che ha perfettamente senso in un linguaggio basato su prototipi.Immagino che xxxx nel tuo esempio potrebbe essere chiamato prototipo o qualcosa di simile (vedi http://en.wikipedia.org/wiki/Prototype-based_programming dove una lingua lo chiama proto).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top