問題タブ [traits]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaの特性またはミックスインのパターン?
javaでミックスインまたは特性をエミュレートする方法はありますか? 基本的に、複数のクラスに共通のビジネス ロジックを追加できるように、複数の継承を行う方法が必要です。
ruby - ミックスインやトレイトの良い例は何ですか?
私は Ruby について調べていて、その mixins パターンについて学びましたが、多くの有用な mixin 機能を思いつきませんでした (おそらく、そのように考えることに慣れていないため)。では、便利な Mixin 機能の良い例は何だろうと思っていました。
ありがとう
編集:少し背景。私は C++ やその他のオブジェクト言語から来ていますが、Ruby はミックスインを継承していないと言っているのではないかと疑っています。 、ミックスインが何であるかを実際には理解していません。
language-agnostic - Mixin/Traits システムに相当するオブジェクト レベルを何と呼びますか? パターン名はありますか?
以前、Mixins とは何かについて尋ねたところ、パターンの意味の要点がわかり始めました。しかし、クラス レベルではなくオブジェクト レベルで Mixins のようなことを行うための共通のパターン名があるかどうか疑問に思いました。
疑似コード (存在しない言語):
このようなことは、何らかの方法でいくつかの言語で実行できることを知っていますが、xxxx が表す機能の「標準」名は何になるのか、また、このパターンの名前がある場合は何になるのか疑問に思っています。 .
ありがとう!
編集:finnssonの答えを拡張すると、次のような別のケースになる可能性があると思います:
連結は適切でしょうか?
引用:「連結:連結プロトタイプとも呼ばれる純粋なプロトタイピングの下で...」-wikipedia
scala - スタック可能な変更とは何ですか?
私は Scala に関する本を読んでいて、traitsを使用したスタック可能な変更について言及しています。スタック可能な変更とは何ですか? また、それらはどのような目的で使用されますか?
multiple-inheritance - ミックスインとトレイト
Mixins と Traits の違いは何ですか?
ウィキペディアによると、Ruby モジュールは一種の特性です。どうして?
scala - Scala で複数のトレイトを混合する
クイック ノート: チュートリアルScala for Java Refugees Part 5: Traits and Typesの例。
私が学生、労働者、低賃金、および若いという特性を持っているとします。
これらすべての特性を持つクラス ( instance ではない) CollegeStudentを宣言するにはどうすればよいでしょうか?
注:私は、1 つまたは 2 つの Traits を持つ CollegeStudent など、最も単純なケースを認識しています。
scala - 抽象クラスよりも特性を使用する利点は何ですか?
誰かが Scala の特徴を説明してくれませんか? 抽象クラスの拡張に対する特性の利点は何ですか?
c++ - オプションのデフォルトコンストラクターを使用するにはどうすればよいですか?
このクラス:
T にデフォルトのコンストラクターがない場合はコンパイルされません。これです:
T にデフォルトのコンストラクターがあっても、デフォルトのコンストラクターはありません。
両方が欲しい - T() がない場合、A() は必要ありません。
SFINAE を使用する必要があることはわかっています。Boost.traits と Boost.enable_if は役に立ちますが、うまくいきません。誰かがこの単純なケースの例を教えてもらえますか?
scala - Scala トレイトに混在させるには、新しいオブジェクトを作成する必要がありますか?
Scala では、コレクションを呼び出すと、値がコレクションである がgroupBy()
返されますが、 . 変換を行う最も簡単な方法は何ですか? 新しいものを作成してすべてをコピーすることを避けることはできますか?Map
MultiMap
MultiMap