Java23デザインパターン-18。動作パターンのオブザーバーパターン

Javaの設計原則に加えて、23の設計パターンもあります。

これらのパターンは前任者によって少しずつ蓄積され、改善され、最適化されており、これらのデザインパターンはいくつかの特定の問題を解決することができます。

そして、これらのモードでは、言語の使用が完全に反映されていると言えます。

それでは  、今日行動モードで  オブザーバーモードを学びます    !

オブザーバーモード

百科事典から始めましょう、オブザーバーモードとは何ですか、そして観察する特定のものは何ですか?

例で理解できる2番目の文を主に見ていきます

私たちはクラスについて話しているようなものです。校長は前はAで、Aは後で去ります。BはAの前に校長の仕事を引き継ぎます。このクラスの生徒の場合、校長に電話する必要があります将来Bに会います。

オブザーバーパターンの定義と特徴

オブザーバーモードの定義:複数のオブジェクト間の1対多の依存関係を指します。オブジェクトの状態が変化すると、それに依存するすべてのオブジェクトに通知され、自動的に更新されます。このモデルは、パブリッシュ/サブスクライブモデル、モデルビューモデルと呼ばれることもあり、オブジェクト動作モデルです。

オブザーバーパターンはオブジェクトの動作パターンであり、その主な利点は次のとおりです。

1.ターゲットとオブザーバーの間の結合関係が減少し、2つの間に抽象的な結合関係があります。

2.ターゲットとオブザーバーの間にトリガーメカニズムが確立されます。


その主な欠点は次のとおりです。

1.ターゲットとオブザーバーの間の依存関係は完全には削除されておらず、循環参照がある可能性があります。

2.オブザーバーが多い場合、通知のアナウンスに時間がかかり、プログラムの効率に影響します。

オブザーバーパターンの構造と実現

オブザーバーモードを実装するときは、特定のターゲットオブジェクトと特定のオブザーバーオブジェクト間の直接呼び出しに注意してください。そうしないと、2つが緊密に結合され、オブジェクト指向の設計原則に違反します。

オブザーバーモードの主な役割は次のとおりです。

1.抽象テーマの役割:抽象ターゲットクラスとも呼ばれ、オブザーバーオブジェクトを保存するための集約クラス、オブザーバーオブジェクトを追加および削除するためのメソッド、およびすべてのオブザーバーに通知するための抽象メソッドを提供します。

2.特定のテーマの役割:特定のターゲットクラスとも呼ばれ、抽象ターゲットに通知メソッドを実装します。特定のテーマの内部状態が変化すると、登録されているすべてのオブザーバーオブジェクトに通知します。

3.抽象オブザーバーの役割:特定のテーマの変更通知を受信したときに呼び出される、それ自体を更新するための抽象メソッドを含む抽象クラスまたはインターフェースです。

4.特定のオブザーバーの役割:抽象オブザーバーで定義された抽象メソッドを実装して、ターゲットの変更が通知されたときに自身の状態を更新します。

 

これらの内容を知った後、オブザーバーモードの使い方を見てみましょう。

上記のクラスの先生を変更する例を実装しましょう

最初の一歩:

まず、抽象的なオブザーバーの役割を定義しましょう

2番目のステップ:

この抽象的なオブザーバーを使用して、さらに2つの具体的な実装クラスを取得する必要があります。1つは教師で、もう1つは学生です。

3番目のステップ:

これだけでは不十分で、ターゲットクラスも抽象化する必要があります。通知する必要が生じたら、これらのオブザーバーをまとめる必要があります。

4番目のステップ:

最終的に具体的な実装クラスを取得し、今すぐ抽象ターゲットクラスを実装します

テスト:

OK、これらで、テストできます

それを実行して何が起こるか見てみましょう

ご覧のとおり、notifyObserverを実行すると、すべてのオブザーバーに通知され、各オブザーバーが独自の応答を行います。

 

OK、それだけです、みんなよく見てください。たくさん練習してください。ご不明な点がございましたら、お問い合わせくださいQQ:2100363119

私の個人的なウェブサイトを訪問するために皆を歓迎します:lemon1234.comメッセージを残してくれてありがとう

おすすめ

転載: blog.csdn.net/weixin_45908370/article/details/109493397
おすすめ