問題タブ [proxy-pattern]
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++ - プロキシはデモモードを作成するのに適していますか?
ハードウェアを実際に接続せずにソフトウェアを実行/シミュレートできるようにする目的でハードウェアを通常使用する特定のプロジェクトでは、デモ モードが必要になることがよくあります。デモ モードの関数は、ハードウェアをいくらかシミュレートしますが、明らかに動作しません。
私の質問は、プロキシ デザイン パターン (またはその他のパターン) は、ソフトウェアでデモ モードを作成するのに適していますか?
短く簡略化された以下の例を考えてみましょう。
上記のコードでは、それぞれがどのように機能するかを示すために、ロボット用に 1 つのデモ アームと 1 つの実際のアームを作成しました。明らかに、実際のデモ モードでは、すべての派生オブジェクトにデモ実装が含まれます。これは、ソフトウェアにデモ モードを実装する良い方法ですか?
これは実際の大規模/中規模アプリケーションに適用できますか? 私はこのアプローチを好む傾向があります。実際のアプリケーションとデモ アプリケーションの両方でまったく同じ関数が呼び出されるため、作業が楽になり、流れが理解できるからです。あるいは、個別の「デモ」パスは、実際のアプリケーションとの類似性を失い、バラバラに成長するほぼ個別のアプリケーション/モジュールになる可能性があります。
scala - Scala Invocation Handler が ClassCastException を引き起こす
必要に応じて、スワップをトリガーする拡張メソッドとともに、基になるインスタンスをカバーの下で動的にスワップアウトできるように、プロキシパターンを実装しようとしています。これは以前に Java で実装したことがありますが、Scala ではうまくいきません。
これは私のシナリオです:
ここでの問題: Proxy オブジェクトの DynamicClient または Object からメソッドを呼び出すと、それらは問題なく動作します。
Client クラスに属するメソッドへの呼び出しは、Invocation Handler に到達する前に失敗します。
この例外トレースで:
このキャスト例外が発生するのはなぜですか? Scala と Java の方法でプロキシ呼び出し処理を処理するより良い方法はありますか?
typescript - プロキシの TypeScript マップ型
概念的に単純なことを達成したいのです: を返すany
(または、例のために、number
を返す) 関数のマップをvoid
、他の型情報を保持しながら、 を返す関数のマップに変換します。
コードで表現すると、次のようなことをしたいと思います。
python - 属性またはメソッドがアクセスされているかどうかを __getattr__ で判断することは可能ですか?
メソッドは、 経由でアクセスできる単なるオブジェクトであることは承知していますgetattr(obj, 'method_name')
。メソッドが存在しない場合、これがトリガーされobj.__getattr__(method_name)
ます。ただし、__getattr__
属性がユーザーによって直接呼び出されるかどうかを実装で区別することは可能ですか? 記述子がこれを許可する可能性があるように思えますが、完全にはわかりません。
私の動機は、通信が遅いラップされたオブジェクトに属性アクセスとメソッド呼び出しの両方を転送するプロキシ クラスです。属性アクセスの場合、必然的にブロックして結果を待つ必要があります。_blocking
しかし、メソッド アクセスの場合は、ノンブロッキング プロミス オブジェクトを受け取ることができるパラメーターを挿入したいと思います。