問題タブ [static-polymorphism]
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.
c++ - CRTP静的ポリモーフィズム:基本クラスをモックに置き換えることは可能ですか?
Websocket サーバーで CRTP 静的ポリモーフィズムを使用して、ネットワーク コードをビジネス ロジックから分離します。基本クラスはメッセージを処理するために派生のメソッドを呼び出し、次に派生は送受信のために基本を呼び出します。それは魅力のように機能し、次のようになります。
今度は単体テストです。コードが分離されているため、クラスのテスト機能を個別に使用したいと考えています。
基本クラスのテストは簡単です。
しかし、派生クラスをテストするにはどうすればよいでしょうか? Base テンプレート パラメーターを追加すると、テスト コードが問題なく作成されます (Base はモック クラスです)。しかし、製品版では 2 つのテンプレート クラスが相互に参照することになります... :(
これを乗り越えることは可能ですか?
c++ - C++ ポリモーフィックな静的で変更可能な子関数ポインター
クラス B の子であるクラス A があります。クラス B のすべての子には、クラスがコンパイルされた後に別のファイルの外部関数によって変更可能なクラスを処理するための関数への関数ポインターが必要です。クラス A のすべてのインスタンスは 1 つの関数を指し、B のすべてのインスタンスは関数を指す必要がありますが、A と B は異なる関数を指すことができる必要があります。これどうやってするの?静的関数ポインターとプライベート静的関数ポインターを試しましたが、どちらも機能しませんでした。
私の望む出力は
typescript - this.constructor のポリモーフィック呼び出し
間違った質問。サンプルコードは機能します。
このコードを検討してください
問題は、(this.constructor as typeof Object3D).parameterTypes
ポリモーフィックに呼び出されないことです。オブジェクト インスタンスに応じて、Cube または Sphere の parameterTypes を呼び出したいと思います。
JavaScript ではこれは簡単ですthis.constructor.parameterTypes
が、TypeScript ではそれができません -> Property 'parameterTypes' does not exist on type 'Function'
何か助けはありますか?
私が試してみました:
しかしそうすると、ポリモーフィズムは何の役に立つのでしょうか?