لذلك عندما تتغير حالة الكائن ، يتم إخطار جميع الكائنات التي تعتمد عليها وتغييرها وفقًا لذلك.
هناك العديد من الطرق لتنفيذ نمط المراقب: يجب أن يتضمن هذا النمط دوران: المراقب والكائن الذي يتم ملاحظته. هناك علاقة منطقية لـ "الملاحظة" بين المراقب والمراقب. عندما يتغير المراقب ، سيراقب المراقب مثل هذه التغييرات وإصدار التغييرات المقابلة.
/*** واجهة المراقب: المراقب ، الفئة التي تحتاج إلى استخدام وضع المراقب يحتاج إلى تنفيذ هذه الواجهة*/واجهة عامة Observer {public void update (Object OBJ) ؛} /*** المراقب (عادةً فئة مجردة ، مريحة للتوسع): طريقة إعلان ، حدثت بعض التغيير ، وأبلغ المراقب بالتغيير. */واجهة عامة تم توضيح {public void addobserver (observer obs) ؛ // إضافة كائن مراقب الفراغ العام removeObserver (Observer OBS) ؛ // Observer Object Public void notifyobservers (تم تغيير السلسلة) ؛ /*** المراقب الهدف: قم بتنفيذ واجهة المراقب وتنفيذ العمليات المقابلة على كائن المراقب*/الأدوات ذات الفئة العامة concretewatched weedObserved {// Observer Object Collection List Private <Sborver> قائمة = New ArrayList <Sborver> () ؛ Override public void addobserver (observer obs) // أضف المراقب {if (! list.contains (obs)) {list.add (obs) ؛ }} Override public void removeObserver (Observer OBS) // يخبر المراقب المراقب بإلغاء الملاحظة وإزالة المراقب من الحاوية {if (list.contains (obs)) {list.remove (obs) ؛ }} Override public void notifyObservers (تغيير السلسلة) {// اجتياز الكائن والاتصال بشكل منفصل لعمليات إشعار التحديث لـ (Observer OBS: LIST) {obs.update (تغيير) ؛ }}} /*** الهدف المرصود (مراقب محدد)*/فئة عامة محددة تنفذ مراقب {Override Public Void Update (Object OBJ) {system.out.println (obj.toString () concretewatched () ؛ Observer obs1 = جديد محدد watcher () ؛ Observer obs2 = جديد محدد watcher () ؛ Observer Obs3 = جديد محدد watcher () ؛ bobs.addobserver (obs1) ؛ // إضافة Observer Object bobs.addobserver (obs2) ؛ bobs.addobserver (obs3) ؛ bobs.notifyObservers ("*** إخطار ***") ؛ System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------أخيرا طباعة النتيجة:
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون من المفيد للجميع تعلم برمجة Java.