Comment appelez-vous un équivalent au niveau objet du système Mixin/Traits, existe-t-il un nom de modèle pour cela ?

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

Question

J'ai déjà demandé ce qu'étaient les Mixins et j'ai commencé à comprendre l'essentiel de ce que signifie ce modèle.Mais je me suis demandé s'il existait un nom de modèle commun pour faire quelque chose comme des Mixins au niveau de l'objet plutôt qu'au niveau de la classe.

Pseudo code (dans une langue inexistante) :

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

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

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

  object.bar() #output: bar

Je sais que des choses comme celle-ci peuvent être faites dans plusieurs langues, d'une manière ou d'une autre, mais je me demande quel serait le nom "standard" de la fonctionnalité que xxxx représente, et quel est le nom de ce modèle, s'il en existe un. .

Merci!

Modifier:En développant la réponse de Finnsson, je suppose que quelque chose comme ceci pourrait être un autre cas de ce genre :

 object.xxxx(OtherClass)
 object.otherfoo()

La concaténation serait-elle appropriée ?

Citation:"Enchaînement:Sous prototypage pur, également appelé prototypes concaténatifs..." -wikipedia

Était-ce utile?

La solution

Ceci est courant dans les langages de programmation basés sur des prototypes.Je crois que cela s'appelle "importer" en Ruby, mais cela fait un certain temps que je n'ai pas programmé Ruby pour la dernière fois, donc je ne suis pas sûr.

En js/ruby, vous écririez

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

et ce n'est pas un véritable modèle, puisqu'il s'agit simplement d'une affectation (o.bar = bar) parfaitement logique dans un langage basé sur un prototype.Je suppose que xxxx dans votre exemple pourrait être appelé prototype ou quelque chose de similaire (voir http://en.wikipedia.org/wiki/Prototype-based_programming où une langue appelle cela proto).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top