1

以前、Mixins とは何かについて尋ねたところ、パターンの意味の要点がわかり始めました。しかし、クラス レベルではなくオブジェクト レベルで 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

4

1 に答える 1

1

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

js/ruby では、次のように記述します。

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

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

于 2008-12-10T12:02:31.837 に答える