Mixin/Traits システムに相当するオブジェクト レベルのことを何と呼びますか?それにパターン名はありますか?
-
21-08-2019 - |
質問
私は以前、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 言語がこれを呼ぶ場所 プロト).
所属していません StackOverflow