「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C# |オブザーバーパターンを理解する

C# |オブザーバーパターンを理解する

2024 年 7 月 30 日に公開
ブラウズ:568

C# | Understanding the Observer Pattern

注記
私の個人ウェブサイトで他の投稿をチェックできます: https://hbolajraf.net

オブザーバー パターンは、サブジェクトとして知られるオブジェクトが、オブザーバーと呼ばれるその依存関係のリストを維持し、通常はメソッドの 1 つを呼び出すことによって、状態の変化をオブザーバーに通知する動作設計パターンです。このパターンは、観察者がお互いではなく対象のみを認識するため、オブジェクト間の疎結合を促進します。 C# では、このパターンはイベント駆動型プログラミングでよく使用されます。

実装

C# の詳細な例を通じてオブザーバー パターンを理解しましょう。

主題インターフェース

まず、主題のインターフェースを定義します。このインターフェースには、オブザーバーの登録、登録解除、および通知を行うためのメソッドが含まれます。

public interface ISubject
{
    void RegisterObserver(IObserver observer);
    void UnregisterObserver(IObserver observer);
    void NotifyObservers();
}

オブザーバーインターフェース

次に、オブザーバーのインターフェイスを定義します。このインターフェースには、オブザーバーに通知する必要があるときにサブジェクトが呼び出すメソッドが含まれます。

public interface IObserver
{
    void Update();
}

具体的な主題

次に、ISubject インターフェイスを実装する具体的なサブジェクト クラスを実装しましょう。

public class ConcreteSubject : ISubject
{
    private List observers = new List();

    public void RegisterObserver(IObserver observer)
    {
        observers.Add(observer);
    }

    public void UnregisterObserver(IObserver observer)
    {
        observers.Remove(observer);
    }

    public void NotifyObservers()
    {
        foreach (var observer in observers)
        {
            observer.Update();
        }
    }
}

コンクリートオブザーバー

次に、IObserver インターフェイスを実装する具体的なオブザーバー クラスを実装しましょう。

public class ConcreteObserver : IObserver
{
    public void Update()
    {
        Console.WriteLine("Observer notified of state change.");
    }
}

使用例

それでは、これらのクラスをどのように組み合わせて使用​​できるかを見てみましょう。

class Program
{
    static void Main(string[] args)
    {
        ConcreteSubject subject = new ConcreteSubject();
        ConcreteObserver observer1 = new ConcreteObserver();
        ConcreteObserver observer2 = new ConcreteObserver();

        subject.RegisterObserver(observer1);
        subject.RegisterObserver(observer2);

        subject.NotifyObservers();

        subject.UnregisterObserver(observer1);

        subject.NotifyObservers();
    }
}

この例では、ConcreteSubject がサブジェクト、ConcreteObserver がオブザーバーです。 NotifyObservers() が呼び出されると、両方のオブザーバーに状態の変更が通知されます。 1 人のオブザーバーの登録を解除すると、残りのオブザーバーにのみ通知されます。

次は何?

Observer パターンは、C# でオブジェクト間の通信を実装する強力な方法です。これは疎結合を促進し、イベント駆動型アーキテクチャで特に役立ちます。このパターンを理解して実装することで、より保守しやすくスケーラブルなコードを作成できます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/hbolajraf/c- Understanding-the-observer-pattern-1nm6 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3