Mixin/Traits システムに相当するオブジェクト レベルのことを何と呼びますか?それにパターン名はありますか?

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

質問

私は以前、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

役に立ちましたか?

解決

これはプロトタイプベースのプログラミング言語では一般的です。Rubyではこれが「import」と呼ばれていると思いますが、最後にRubyをプログラムしてからかなり時間が経っているので、よくわかりません。

js/rubyでは次のように書きます

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

そして、これはプロトタイプベースの言語では完全に意味のある単なる代入 (o.bar = bar) であるため、実際のパターンではありません。あなたの例の xxxx はプロトタイプまたは同様のものと呼ぶことができると思います(を参照) http://en.wikipedia.org/wiki/Prototype-based_programming 言語がこれを呼ぶ場所 プロト).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top