CDI - هل يتم إخطار المتصل عندما يلاحظ المراقب حدثًا؟

StackOverflow https://stackoverflow.com/questions/3844596

  •  27-09-2019
  •  | 
  •  

سؤال

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

شكرًا،

والتر

هل كانت مفيدة؟

المحلول

لا أعتقد أن المتصل يتم إخطاره (ليس ما يدور حوله نمط المراقب في الواقع). ولكن يمكنك محاولة العمل هذا من خلال:

  • يمكنك الحصول على حقل واحد كائن الحدث - private boolean consumed وتعيينها على true إذا تم استهلاكه. بعد ذلك ، (يتم التعامل مع الأحداث بشكل متزامن) في منتج الحدث تحقق من هذا المتغير.

  • إطلاق حدث جديد من المراقبين الذي يلاحظه منتج الحدث

  • إذا كنت ترغب في إسقاط فائدة الاقتران الفضفاض ، وأنت تعرف بالضبط أي منتج الحدث هو ، يمكنك ذلك @Inject في جميع المستمعين ، ودعهم يستدعيون طريقة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top