"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ج # | فهم نمط المراقب

ج # | فهم نمط المراقب

تم النشر بتاريخ 2024-07-30
تصفح:279

C# | Understanding the Observer Pattern

ملحوظة
يمكنكم مراجعة المنشورات الأخرى على موقعي الشخصي: https://hbolajraf.net

نمط المراقب هو نمط تصميم سلوكي حيث يحتفظ الكائن، المعروف باسم الموضوع، بقائمة من التابعين له، الذين يطلق عليهم المراقبون، ويبلغهم بأي تغييرات في الحالة، عادةً عن طريق استدعاء إحدى طرقهم. يعزز هذا النمط الاقتران غير المحكم بين الكائنات، حيث يكون المراقبون على دراية بالموضوع فقط وليس بعضهم البعض. في لغة #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()، يتم إخطار كلا المراقبين بتغيير الحالة. بعد إلغاء تسجيل مراقب واحد، يتم إخطار المراقب المتبقي فقط.

ماذا بعد؟

يعد نمط المراقب طريقة قوية لتنفيذ الاتصال بين الكائنات في لغة C#. إنه يعزز الاقتران السائب ويمكن أن يكون مفيدًا بشكل خاص في البنى التي تعتمد على الأحداث. من خلال فهم هذا النمط وتنفيذه، يمكنك كتابة تعليمات برمجية أكثر قابلية للصيانة والتوسع.

بيان الافراج تم نشر هذه المقالة على: https://dev.to/hbolajraf/c-understanding-the-observer-pattern-1nm6 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3