問題タブ [dynamic-dispatch]
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.
rust - 関連付けられたタイプ (動的ディスパッチも) を含む特性 (動的ディスパッチ) のベクトル
私には特徴があります:
このトレイトには多くの実装があります (各実装には特定のエラー タイプが含まれます)。
プラグインのベクトルを作成する必要があります:
しかし、コードはこのエラーをスローします:
コードを再編成しimpl trait Plugin
て、関連付けられたタイプ (動的ディスパッチも) を含むプラグインのベクトル (動的ディスパッチ) を作成するにはどうすればよいimpl trait error::Error
ですか?
--
完全なコードは次のとおりです。
scala - パラメータ化された関数を使用した Scala 動的ディスパッチ
このコードを機能させるにはどうすればよいですか?
私の知る限り、Scala には動的ディスパッチがありません (Java と同様)。どういうわけか動的ディスパッチをシミュレートすることは可能ですか?
または、最善の解決策は何ですか?
java - Java で instanceof または getClass() を使用しない動的ディスパッチ
次のドメイン オブジェクトがあります。
次に、ドメインオブジェクトから完全に分離する必要がある別のモジュールがあります。つまり、ドメインオブジェクトを認識していますが、ドメインオブジェクトはこの追加モジュールの存在を認識すべきではありません。
このモジュールでは、共通のインターフェイスEvent
を介してオブジェクトを受け取り、特定のイベント タイプに基づいて異なる動作をする必要があります。
現在、私のコードは次のようになっています。
それは問題なく動作しますが、静的分析ツールとコード レビュー担当者は、使用すべきではなくinstanceof
、よりオブジェクト指向のアプローチに置き換える必要があると不満を漏らしています。反射またはgetClass()
オプションもありません。
Javaでそれを行う方法は?
の置換に関する多くの既存の質問を確認しましinstanceof
たが、それらはすべてドメイン オブジェクトにロジックを直接追加することを提案していました。ただし、この場合、モジュールに固有のロジックでそれらを汚染したくありません。
c++ - C++ での仮想メソッドのオーバーライド
と呼ばれる抽象クラスがあるとしVehicle
ます。
そして、そのサブクラスBicycle
とCar
:
ただし、このコード ブロックは SomeExceptionClass をスローします。
ここで何をしますか?C++ では、このようにポリモーフィック メソッドを使用できませんか?
どんな助けでも大歓迎です。ありがとう。
編集dynamic_cast<>
:とdecltype
バリアントで回答を提供することも良いでしょうか?
c++ - C++ または D: 動的ディスパッチなしでクラスを分離するイディオム?
私はパフォーマンスが大好きですが、自動化されたテストを実行することの重要性も認識しています (より適切な正式な検証方法が主流になるまで)。
欠点は、テスト容易性を考慮して設計しようとすると、依存関係を表すインターフェイスを導入し始めることです。ご存知のように、インターフェイスは呼び出しをその依存関係に動的にディスパッチし、コンパイル時の最適化の機会を減らします。
本番環境で動的ディスパッチのコストをかけずに、クラスを単体テストするためのより良い方法が存在します。必要に応じて、単体テストの実行にはそのコストを支払うことができますが、製品版のリリースには使用できません。
D および C++ ソリューションに興味があります。
c++ - 二重ディスパッチを実装する循環依存
基本クラス Shape と、Visual Studio のプロジェクト X で定義された Shape からの派生クラス Triangle があるとします。私はまた、適切なメソッドを動的に呼び出すことができるようにしたいプロジェクト Y にクラス Transformations を持っています:
thisに続く訪問者パターンを使用してこれを実行しようとしています。
Shape.cpp と Triangle.cpp の両方で、次のメソッドを実装しました。
ただし、プロジェクト X はプロジェクト Y の前にコンパイルされ、プロジェクト Y はプロジェクト X に依存するため、循環依存関係が残ります。
残念ながら、メンバー関数の知識が必要なため、Transformations クラスを前方宣言するだけでは十分ではありません。
このスレッドで提供された回答は、その点では役に立ちませんでした。
ios - Objective-C の動的バインディングを Swift 2 に変換します
obj-c プロジェクトを迅速に変換している状況があります。それは次のとおりです
私の懸念は、これを行う迅速な方法は何ですか?