問題タブ [proxy-classes]
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リフレクションAPIの動的プロキシを使用してそのようなインターフェースを実装できることは知っていますが、リフレクションを介したメソッドアクセスは100倍遅くなります。では、この場合の定型文と反射の代替案は何ですか?
.net - .NET Web サービス プロキシ クラスはシングルトンとして安全に使用できますか?
SOAP Web サービスと通信するために、Visual Studio で生成されたプロキシ クラスを使用しています。生成されたクラスは、System.Web.Services.Protocols.SoapHttpClientProtocol から派生します。クラスのインスタンス化にはコストがかかることがわかったので、クラスの Singleton インスタンスを返すようにファクトリ メソッドを変更することを検討しています。ドキュメントによると、クラスはマルチスレッドに対して安全です。
これらのクラスのインスタンスを再利用した経験のある人はいますか? そうすることのマイナス点はありますか (つまり、接続が開いたままになるなど)?
.NET フレームワーク バージョン: 2.0
code-generation - 生成された WCF クライアント プロキシ コードにメソッドを追加する
WCF クライアント プロキシ コード (つまり、 から派生する生成クラス) のサービス操作ごとに 1 つのメソッドを追加したいと考えていますClientBase
。実装を持つ Visual Studio 拡張機能を作成しましたが、このインターフェイスは、派生クラスIOperationContractGenerationExtension
ではなく、サービス インターフェイスを変更する機能のみを公開しているようです。ClientBase
プロキシ クライアント クラスで新しいメソッドを生成する方法はありますか?
python - Python + Twisted のメッセージ キュー プロキシ
軽量の Message Queue プロキシを実装したいと考えています。その仕事は、Web アプリケーション (PHP) からメッセージを受信し、メッセージ キュー サーバーに非同期的に送信することです。このプロキシを使用する理由は、MQ が常に使用できるとは限らず、遅れたりダウンしたりすることもありますが、メッセージが配信され、Web アプリケーションがすぐに戻ることを確認したいからです。
そのため、PHP は同じホストで実行されている MQ プロキシにメッセージを送信します。そのプロキシは、クラッシュの場合に永続化のためにメッセージを SQLite に保存します。同時に、接続が利用可能になると、SQLite から MQ にメッセージをバッチで送信し、SQLite からメッセージを削除します。
さて、私が理解しているように、このサービスには次のコンポーネントがあります。
- メッセージ リスナー (PHP からのメッセージをリッスンし、受信キューに書き込みます)
- DB フラッシャー (受信キューからメッセージを読み取り、データベースに保存します。SQLite のシングルスレッド性によります)
- MQ 接続ハンドラー (再接続することにより、MQ サーバーへの接続をオンラインに維持します)
- メッセージ送信者 (SQlite db からメッセージを収集して MQ サーバーに送信し、db から削除します)
#1 (TCPServer) に Twisted を使用することを考えていましたが、イベント駆動型ではない他のポイントとの統合に問題があります。直感的には、これらの各ポイントは個別のスレッドで実行する必要があることがわかります。これは、すべてが IO バウンドであり、互いに独立しているためです。ただし、それらを 1 つのスレッドに簡単に配置できます。にもかかわらず、このワーカー スレッドを Twisted のメイン ループとは別に実装する方法について、(私にとっては) 適切で明確な例を見つけることができませんでした。
私が始めた例は、service.Application および internet.TCPServer オブジェクトを使用するchatserver.pyです。TCPServer サービスを作成する前に独自のスレッドを開始すると、スレッドは数回実行されますが、停止して二度と実行されません。なぜこれが起こっているのかはわかりませんが、おそらく Twisted でスレッドを正しく使用していないことが原因です。
別のワーカー スレッドを実装して Twisted を維持する方法について何か提案はありますか? 考えている代替アーキテクチャはありますか?
android - Androidプロキシカーソル
ContentProviderを使用してデータを公開したいデータベースがあります。ただし、すべての列が公開されていないことが重要です。また、名前を変更する必要があります。これを行う良い方法はありますか?カーソルを取り、その列を目的の列に変換し、closeの呼び出しなどを元のカーソルに再生する、ある種のプロキシカーソルを考えていました。このようなものは存在しますか、それとも作るのが難しいでしょうか?
java - 同様の機能をJavaの多数のメソッドに追加するにはどうすればよいですか?
などlogSomeAction
、ログを記録するための方法がたくさんあります。logAnotherAction
ここで、これらすべてのメソッドがメッセージ (Thread.sleep) を出力した後に少し一時停止するようにします。
手動で行う場合は、次のようにします。
Javaにはプロキシクラスやその他の魔法のツールがあることを覚えています。N個のスリープブロックをN個のロギングメソッドにコピーアンドペーストするのを避ける方法はありますか?
c# - DLL を介して Web サービス タイプを直接使用する
タイプ (foo) を返す関数を持つ Web サービスがあります。2.0 で生成されたプロキシを介して .NET でこの Web サービスを使用すると、生成されたプロキシに foo というクラスが作成されます。Web サービスで使用されている DLL であるそのクラス (foo) を含む DLL がある場合、カスタム プロキシ クラスを作成する代わりにそのクラスを使用する方法はありますか? リモーティングに似たものを探していますが、リモーティングではありません。
nhibernate - NHibernate:リポジトリから完全にロードされたインスタンスを返すためのパターン
NHibernateにインスパイアされた無限のDALリファクタリング煉獄の一部として、リポジトリパターンを使用して、UIレイヤーからNHibernateを腕の長さに保つようになりました。リポジトリからのLoadメソッドの例を次に示します。
私のウェブサイトがISessionが何であるかを知らないという事実が大好きです。
当然、上記のメソッドはStoredWillをロードせず、プロキシを返すだけなので、遅延初期化の例外が発生し始めました。プロキシのプロパティにアクセスすると、ISessionのスコープ内にいる時間が長くなるため、例外が発生します。何が起こっているのか気づいたとき、私は大声で笑いました。
私はこれを次のように修正しました:
しかし、それはすべて少しばかげているようです。もう少しエレガントなパターンを使用している人はいますか?
皆大好き。
デビッド
nhibernate - インスタンスのすべての nhibernate プロキシを強制的にロードする
エンティティのインスタンスのスナップショットを取得したいので、このインスタンスに対してすべてのプロキシを強制的にロードしたいと考えています。
ほとんどの場合、遅延読み込みを無効にしたくありません。すべてのプロキシを強制的に読み込むために呼び出すことができる API があるかどうか疑問に思っています。
nhibernate - NHibernate.Initialize(proxyObject) を呼び出した後、私は間違った objectType を取得しています
オブジェクト階層は Parent->Child です (Lazy loading はデフォルトで true に設定されています) データベースからすべての Parent オブジェクトをロードしています。すべての子オブジェクトの型は ChildProxyGUID になります。
それから私は書く
parent.Child を Real タイプの「Child」に変換するにはどうすればよいですか。システムチェックのため、本当の型 (Child) が必要です。この例は実際には単純ですが、非常に複雑なマッピングと関係があります。
そこに何かアイデアはありますか?