問題タブ [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.

0 投票する
1 に答える
965 参照

java - Web アプリケーション用のクライアント通知サービスを作成する方法、または Observer パターンを使用する必要がありますか?

完全に実装された DAO があり、すべての Bean が Entity オブジェクトを継承しています。ここで、ユーザーが永続ストレージに対してエンティティを作成/更新/削除すると、通知が電子メールでクライアントに自動的に送信されるクライアント通知システムを作成したいと考えています。

ファクトリ パターンを使用してエンティティ タイプに基づいて DAO のマネージャーを返す DAO マネージャーがあります。

各マネージャには、create()、remove()、update() メソッドがあります....

私の最初のアイデアは、すべてのエンティティ マネージャーが Observer インターフェイスを継承し、関数呼び出し (作成、削除、更新など) の後に通知が送信されるようにすることです。

それは賢明な考えですか?そうでない場合、クライアントに通知を送信するにはどうすればよいですか?

私はJBoss 5またはTomcat 6(または簡単に展開できるように両方)とApache Strutsを実行しています(ただし、言及した理由はわかりません)。

前もって感謝します。

0 投票する
1 に答える
64 参照

.net - .NETのリモートオブザーバブル

私はいつもこのシナリオに遭遇しますが、それに対する自家製の解決策以外のものを見つけたことがありません。

  • 注文のリストを表示します
  • これらの注文に変更を加えると、同じリストを見ている他のクライアントの画面で動的に更新されます。その逆も同様です。

私はこのアイデアを「リモートオブザーバブル」と呼んでいます...それがより良い名前を持っているかどうかはわかりません。

これは、ポーリングまたはブラウザページの継続的な更新によって達成できると主張することもできますが、私ははるかに優れた方法(ソケット、派手なデルタ追跡など)を見てきました。

数え切れないほどのフレームワークを使用すると、オブジェクト/データをリモートクライアントに公開できます...しかし、正直なところ、そのデータへの変更を自動的にストリーミングする場所を指定することはできません。

私はこれのための驚くべき秘密のフレームワークを逃していますか?私自身を書くことに固執しますか?

0 投票する
5 に答える
2376 参照

c# - Ruby よりも C# の方が Observer パターンがはるかに複雑なのはなぜですか?

Russ Olsen による「Ruby のデザイン パターン」で、 Observer パターンを Ruby で実装する方法を読みました。このパターンの Ruby 実装は、C# 実装よりもはるかに単純であることに気付きました。たとえば、Jesse Liberty と Alex Horovitz による「Programming .NET 3.5」に示されている実装です。

そこで、「プログラミング .NET 3.5」オブザーバー パターンの例 (pdf 版の 251 ページ) を「Ruby のデザイン パターン」アルゴリズムを使用して書き直しました。両方の実装のソース コードは、前述の Web サイトからダウンロードできます。

以下は書き直した例ですが、どう思いますか?
C# で Observer パターンを使用するために、イベントとデリゲートを使用する必要は本当にあるのでしょうか?


更新 コメントを読んだ後、この質問をしたいと思います:
コードを短くする以外に、デリゲートとイベントを使用する理由はありますか? また、GUI プログラミングについては触れません。

Update2 やっと手に入れました。delegate は単なる関数ポインタであり、event は、+= と -= の 2 つの操作のみを許可するより安全なバージョンのデリゲートです。

「プログラミング.NET 3.5」の例の私の書き直し:

ここに言及されているRubyコードがあります:

これは、私が書き直した「Programming .NET 3.5」の例です。

0 投票する
7 に答える
26704 参照

c++ - C++でのオブザーバーデザインパターン

オブザーバーデザインパターンはすでにSTLで定義されていますか(Javaのjava.util.Observerやjava.util.Observableのように)?

0 投票する
3 に答える
1102 参照

design-patterns - java.util.Observer を使用してクラス内の静的メソッド呼び出しを追跡する

私は初心者のプログラマーで、この問題を回避する方法を考えています。私が解決しようとしている問題は、java.util.Observer を使用してプログラム内の静的メソッド呼び出しの集計を維持することです。

明らかに、私の元の投稿は人々を混乱させたに違いないので、もっと自由なままにしておきます。

ご覧いただきありがとうございます

0 投票する
1 に答える
652 参照

ruby-on-rails - オブザーバーとSTIを使用しようとしたときのTypeError

アチーブメントシステムの実装に関するスレッド( RoRでアチーブメントシステムを実装する方法にあります)をフォローしようとしていますが、オブジェクトが保存されてメソッドが付与されると、TypeErrorが発生しますか?呼び出されます。エラーは次のようになります。

モデルロジックは、前の質問で定義されたものとまったく同じです。

ここで何が起こっているのか分かりますか?

更新: 以下の情報に基づいて、私は抽象化を削除し、今のところ各コントローラーに直接アワードメソッドを配置することになりました。あまり乾燥していないので、もっと遊んでみる時間があれば、もう一度抽象化してみますが、今のところはうまくいきます。例:

0 投票する
1 に答える
1361 参照

ruby-on-rails - RubyonRailsカスタムオブザーバー

Ruby on Railsでカスタムオブザーバーまたはイベント/コールバックを使用する方法を誰かにアドバイスできますか?

私はこれらの両方の投稿を試しました:

http://www.mutuallyhuman.com/2009/1/6/using-custom-activerecord-events-callbacks およびhttp://alexkira.blogspot.com/2008/10/custom-observer-callbacks-in-rails。 html

どれも機能していないようです。2番目の投稿では、AlexKiraのCallbackObservableモジュールをlib/ callback_observable.rb内に配置しました。これは、これを配置する正しい場所ですか?

フィードバックをいただければ幸いです。

0 投票する
4 に答える
17006 参照

ruby-on-rails - すべてのテーブルに対してRailsで完全な監査ログを作成する方法は?

最近、当社でコンプライアンスの推進を開始し、現在Railsアプリケーションで管理されているデータへの変更の完全な履歴を保持する必要があります. すべてのアクションを説明するものをログ ファイルにプッシュするだけでOKです。これはかなり目立たない方法です。

私の傾向は、で次のようなことをすることですApplicationController:

次に、次のようなオブザーバーを作成します。

一般に、これはうまく機能しますが、 has_many<association>_ids :through => 関連付けに追加された「魔法の」メソッドを使用すると失敗します。

例えば:

これによりafter_create、新しいRunwayレコードが関連付けられたときにトリガーされますが、削除されたbefore_destroyときにトリガーされません。RunwayModel

私の質問は...それらの変更(および/または潜在的に他の削除)を監視するように機能させる方法はありますか?
まだ比較的目立たないより良い解決策はありますか?

0 投票する
2 に答える
346 参照

zend-framework - プロトタイプの「クリック」オブザーバー

いくつかの div を含むページがあります (それぞれに一意の ID と同じクラス「親」があります)。各「親」div の下には、クラス「子」と一意の ID 名 -child を持つ div があります。この DIV は、ページの読み込み時に空です。

親 DIV をクリックするたびに、次のコードが実行されます。

もちろん、子ノードが再びそれ自身の親になることは可能です。応答は次のようになります (Smarty with Zend Framework):

子内にロードされた「親」divをクリックするたびに、何も起こりません:(これを修正する方法について提案/修正はありますか?