Rumah > pembangunan bahagian belakang > C++ > C# | Memahami Corak Pemerhati

C# | Memahami Corak Pemerhati

王林
Lepaskan: 2024-07-23 20:44:15
asal
1248 orang telah melayarinya

C# | Understanding the Observer Pattern

Note
You can check other posts on my personal website: https://hbolajraf.net

Corak Pemerhati ialah corak reka bentuk tingkah laku di mana objek, dikenali sebagai subjek, mengekalkan senarai tanggungannya, dipanggil pemerhati, dan memberitahu mereka tentang sebarang perubahan keadaan, biasanya dengan memanggil salah satu kaedah mereka. Corak ini menggalakkan gandingan longgar antara objek, kerana pemerhati hanya menyedari subjek dan bukan satu sama lain. Dalam C#, corak ini biasanya digunakan dalam pengaturcaraan dipacu peristiwa.

Perlaksanaan

Mari kita fahami Corak Pemerhati melalui contoh terperinci dalam C#.

Antara Muka Subjek

Pertama, kami mentakrifkan antara muka untuk subjek. Antara muka ini akan mengandungi kaedah untuk mendaftar, menyahdaftar dan memberitahu pemerhati.

public interface ISubject
{
    void RegisterObserver(IObserver observer);
    void UnregisterObserver(IObserver observer);
    void NotifyObservers();
}
Salin selepas log masuk

Antara Muka Pemerhati

Seterusnya, kami mentakrifkan antara muka untuk pemerhati. Antara muka ini akan mengandungi kaedah yang akan dipanggil subjek apabila ia perlu memberitahu pemerhati.

public interface IObserver
{
    void Update();
}
Salin selepas log masuk

Subjek Konkrit

Sekarang, mari kita laksanakan kelas subjek konkrit yang melaksanakan antara muka ISobjek.

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

    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();
        }
    }
}
Salin selepas log masuk

Pemerhati Konkrit

Seterusnya, mari kita laksanakan kelas pemerhati konkrit yang melaksanakan antara muka IObserver.

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

Contoh Penggunaan

Sekarang, mari lihat bagaimana kita boleh menggunakan kelas ini bersama-sama.

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();
    }
}
Salin selepas log masuk

Dalam contoh ini, ConcreteSubject ialah subjek, dan ConcreteObserver ialah pemerhati. Apabila NotifyObservers() dipanggil, kedua-dua pemerhati dimaklumkan tentang perubahan keadaan. Selepas menyahdaftarkan seorang pemerhati, hanya pemerhati yang tinggal dimaklumkan.

Apa Seterusnya?

Corak Pemerhati ialah cara yang berkuasa untuk melaksanakan komunikasi antara objek dalam C#. Ia menggalakkan gandingan longgar dan boleh berguna terutamanya dalam seni bina yang dipacu peristiwa. Dengan memahami dan melaksanakan corak ini, anda boleh menulis kod yang lebih boleh diselenggara dan berskala.

Atas ialah kandungan terperinci C# | Memahami Corak Pemerhati. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan