ملحوظة يمكنكم مراجعة المنشورات الأخرى على موقعي الشخصي: 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 Listobservers = 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#. إنه يعزز الاقتران السائب ويمكن أن يكون مفيدًا بشكل خاص في البنى التي تعتمد على الأحداث. من خلال فهم هذا النمط وتنفيذه، يمكنك كتابة تعليمات برمجية أكثر قابلية للصيانة والتوسع.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3