問題タブ [observer-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.
ruby-on-rails - Ruby on Rails アプリケーションで rSpec を使用してオブザーバーをどのようにテストしますか?
Ruby on Rails アプリケーションの 1 つに ActiveRecord::Observer があるとします。このオブザーバーを rSpec でどのようにテストしますか?
multithreading - マルチスレッドオブザーバーのデザインパターン
デジタル信号取得システムでは、多くの場合、データは1つのスレッドによってシステム内のオブザーバーにプッシュされます。
Wikipedia / Observer_patternの例:
たとえば、GUIスレッドからのユーザーアクションでデータの流れを停止する必要がある場合は、サブジェクトとオブザーバーの接続を切断し、オブザーバーをまとめて破棄する必要があります。
議論の余地があるかもしれません。データソースを停止し、番兵の値が接続を破棄するのを待つ必要があります。ただし、システムの遅延が大きくなります。
もちろん、データポンピングスレッドがオブザーバーのアドレスを要求したばかりの場合は、破壊されたオブジェクトにメッセージを送信していることに気付く可能性があります。
誰かがこの状況に対抗する「公式の」デザインパターンを作成しましたか?彼らはすべきではありませんか?
php - セッションがタイムアウトしたときにユーザーをログアウトするPHPオブザーバーパターン
ユーザーのセッション タイムアウトが発生したときにユーザーをログアウトしようとしています。私の場合、ユーザーをログアウトするには、データベースでユーザーの「オンライン」ステータスを変更する必要があります。
オブザーバー パターンを使用して、ユーザー セッションの状態を監視し、セッションの有効期限が切れたときにコールバックをトリガーするものを作成できるのではないかと考えていました。これにより、データベースを更新できるようにユーザーの名前が保持されます。セッション側でどこから始めればよいか正確にはわかりません。コールバックをセッションのタイムアウトに関連付けることはできますか?
これらは、利用可能な pear または zend セッション パッケージに組み込まれていますか? そのために使えるものは何でも使う!
更新 @ 16:33:
ユーザーが相互に対話できるシステムがあるとしたらどうしますか (ただし、オンライン ユーザーとしか対話できません)。ユーザーは、現在オンラインになっている他のユーザーを知る必要があります。
ページを更新するたびにセッションがまだ有効かどうかを確認するだけの場合、タイムアウト後、ユーザーはログインしていないページに送られますが、システムではまだオンラインとしてリストされています。
セッションをタイムアウトすると、ログアウトに使用できるユーザーに関する情報が失われることを除いて、その方法は問題ありません。
更新 @ 16:56:
右。ありがとう。私は同意します...ちょっと醜いです。サーバーの遅いポーリングがすでに発生しているため、そのメソッドを実装するのは非常に簡単です。これは、セッション処理パッケージにとって非常に便利な機能のように思えます。Zend と PEAR の両方にセッション パッケージがあります。
.net - WCF MSMQ を使用したオブザーバー パターン
MSMQ によって伝送されるメッセージに対して複数のリスナーを持つことは可能ですか?
WCF はサービスの観点からすべてを組み立てるように見え、通信をポイント ツー ポイントの事柄にします。メッセージ キューを使用して、ログをデータベースに記録する別のプロセスの受信トラフィックをバッファリングしたいと考えています。
着信トラフィックの監視に関心のある他のプロセスがいくつでも存在する可能性があり、これはオブザーバー パターンを積極的に要求しますが、少なくとも WCF 経由で MSMQ を使用しない限り、オブザーバー パターンを表現する方法がわかりません。
誰でもこれについて私にアドバイスできますか?
問題を説明するのにも役立つかもしれない理由についての背景: 私は、現場の小さなブラック ボックスからの接続要求を受け入れる Windows サービスを持っています。ソケットをセットアップし、ブラック ボックスは、時間と空間の GPS 位置で注釈が付けられたイベントを説明するメッセージを送信します。
ソケット ストリームからのメッセージ パケットを解析し、MSMQ を介して別のプロセスに送信します。別のプロセスは重複をフィルター処理し、パケットをデータベース テーブルに書き込みます。
着信トラフィックに応じてインクリメンタル計算を行うことでメリットが得られる後処理がいくらでもあり、ユーザー ツールは着信トラフィックにも応じてユーザー通知を実行します。
したがって、1 つのプロセスでメッセージを送信し、いくつかのプロセスでメッセージを受信したいと考えています。これらの受信者の 1 つは、パケットの内容を解析し、メッセージをデータベースに転記します。これは、キューからメッセージを最終的に削除する責任の明らかな候補ですが、これがメッセージを処理する最後のハンドラーであることを確認する方法の問題があります。
c# - タイプに基づくC#オブザーバー?
タイプに基づいてオブザーバーのセットを作成するとします。つまり、イベントが通知されると、引数の1つのタイプが通知され、そのタイプで動作できるかどうかに基づいて動作するかどうかが決定されます。
これを行う簡単な方法はありますか?これはジェネリックで行うのはかなり簡単だと思いましたが、それは私が想像していたよりも難しいことが判明しているようです。そして、それを避けることができれば、オブジェクトへの参照の束をキャストすることに対処する必要はありません。
私が立ち往生しているのは、これを行うことです:
もちろん、Subjectを汎用にすることもできますが、その場合は、タイプごとに個別のSubjectを用意する必要があります。ここで誰かアドバイスはありますか?どこかに欠けている機能がありますか、それともこれを複雑にしすぎていますか?
更新:NotifyとNotifyDelegateが取る引数を単純化しすぎました。これの代わりに:
私は実際にこのようなことをしたいと思っています:
私が基本的に行き来しようとしているのは、データベースからのデータです。前のコードサンプルが誰かを混乱させた場合は申し訳ありません。
winforms - MVC vs. オブザーバー パターン
私は最近、MVC について StackoverFlow で質問しました: Can the MVC Design Pattern / Architecture pattern can be used in Desktop Application Development?
提供された回答に基づいて、これを Windows フォーム アプリケーションに実装する方法について調査を開始しました。次の CodeProject の記事に出くわしました: http://www.codeproject.com/KB/cs/model_view_controller.aspx
記事の下のコメントで、特定のユーザーは (これは良い記事ですが) 実際にはオブザーバー パターンであると主張しています。最初の、しかしそれほど重要ではない質問は、誰かがそれに同意するか、反対するか、そしてその理由は何かということです。
2 番目のより重要な質問について: 私は .NET で小さなタスク リスト プログラムを作成しようとしています。それは非常に小さく、できれば高速です。一般的に、そのようなプロジェクトにとってより良いアーキテクチャは何でしょうか? オブザーバー パターンまたは MVC パターン? それとも別のパターン?
ありがとうございました
ruby-on-rails - Rails:実際にモデルを持たない結合レコードを観察する方法は?
オブザーバーを使用して、JOIN レコードの作成を観察することは可能ですか? たとえば、has_and_belongs_to_many の書籍モデルを持つユーザー モデルがあるとします。作成または削除された books_users レコードを監視することはできますか、それとも BookUser モデルを使用する必要がありますか?
私が観察したいものの例:
また
または何でも!
ありがとう、
デイブ K.
javascript - フォームを Javascript オブジェクトに接続する (およびその他のベスト プラクティスのアドバイス)
私は何年もの間、JavaScript を使用してサイトの軽量機能 (DOM 操作など) を実行してきましたが、今ではそれを使用してより多くの面倒な作業を (PHP と組み合わせて) 行うことを調査し始めています。オブジェクト指向 JS を始めたばかりで、オブジェクト指向 JS でうまく機能するベスト プラクティスとデザイン パターンを理解しようとしています。
より具体的に言えば、私の質問は、フォームを JavaScript オブジェクトに接続するためのテクニックを提案できる人はいますか?
私の現在の実装では、(かなり大きな) フォームで編集できる JS オブジェクトがあります。オブジェクトをインスタンス化するときに、onchange オブザーバーをフォームにアタッチします。このオブザーバーのコールバックは、フォーム フィールドをオブジェクト パラメーターと同期します。AJAX を介して送信するフォームを処理しています。フォーム情報の一時的なバージョンを mySQL DB に保存する定期的な要求もあります。私が疑問に思っていることの 1 つは、フォーム フィールドが更新されるオブジェクトの変更時 (たとえば、フォームのリセット時) の同期を他の方向で簡単に処理できるかどうかです。
このアプローチが正しい/賢明なものであるかどうかを知りたいと思っています。より一般的には、OOJS フォームの処理に関するアドバイスを聞くことに非常に興味があります。
事前に乾杯:)
(私はプロトタイプを使用しています)
c# - MVC とオブザーバーのパターン
プロジェクトに Observer パターンを実装する際に問題があります。プロジェクトは、Windows アプリケーションのように、C# で MVC として作成する必要があります。
私のドメイン モデルには、たとえば Country クラスと Country リポジトリがあります。すべての国 (フォーム上のリスト) を表示し、新しい国を追加し、既存の国を編集するための Country コントローラーとビューがあります。
国の変更に関連する変更について、どれだけのビューが知る必要があるかはわかりません。問題は、Observer パターンを使用する必要があることです。また、Web 上では、Subject が Country で、Observer が国を編集するフォームであり、すべての例がコンソール アプリケーションにある場合の例のみを見つけることができます。
国のリストを持つすべてのフォームが、既存の国を編集するだけでなく、新しい国を追加することを知っている必要があります。リポジトリをサブジェクトにする必要がありますか?
php - データマッパー + オブザーバーパターン
PHP でアプリを構築しており、DB アクセスにデータ マッパー パターンを使用しています。Observer パターンを使用して、すべてのマッパーが作成したエンティティを観察できるようにすることを検討していました。これにより、手動で解析しなくても変更をデータベースに自動的に保存できるようになります。
これが良いアイデアなのか、それとも悪い習慣なのかなど疑問に思っていましたか?
私は通常、階層内で一緒にリンクされているいくつかのオブジェクトを操作しています。現時点では、各オブジェクトを手動でマッパーに解析する必要があります。これはかなり面倒なので、より良い解決策を考え出そうとしています。
ありがとう、ジャック