Scala and Hack-
ミックスイン:
A
がB
とC
に混在する場合、A instanceof B == false
およびA instanceof C == false
特徴:
A
が特性B
およびC
を実装している場合、A instanceof B == false
およびA instanceof C == false
これは正しいですか、または何か不足していますか?これらの定義は、OO言語の場合も、上記の言語の場合も同じですか?
PHPにはミックスインの概念はありませんが、 traits があり、これはhack/scalaのトレイトとミックスインのミックスのように見えます。
これらの定義は、OO言語の場合も、上記の言語の場合も同じですか?
すべてのOO言語で同じように機能することは1つもないと思います。継承やインターフェースなどの基本的なものにもいくつかのバリエーションがあります。トレイト/ミックスイン。
トレイトは、PHPで説明されているように静的アクセスです) Benjamin Eberleiのブログ 。自動コピー/貼り付けに似ています。コードの。
これは、特性が絶対に悪であることを意味するものではありませんが、ほとんどの場合、特性に結合の問題を課します。
一般的にミックスインは、多重継承の通常の(やや安全な)使用方法です。 Python)のように複数の継承と参照による(ダック)タイピングを行う言語は、ミックスインのエレガントな使用法を提供します。