سؤال

لديك جولة يمكن ملاحظتها/القابلة للاستماع نحو السحب والتي تخطر المراقبين/المستمعين عندما تتغير بعض الحالة.

تتكون الحالة من أكثر من قطعة واحدة من البيانات ، ولا يهتم بعض المراقبين/المستمعين بالدولة بأكملها.

هل تفضل عمومًا إخطار جميع المراقبين/المستمعين على أي حال والسماح لهم بتجاهل الإخطارات عندما يتغير أي شيء يهتمون به؟

أو هل تفضل عمومًا وجود منفصل يمكن ملاحظته لكل "كتلة" من البيانات بحيث يتم ضمان مراقبيك/المستمعين للحصول على إشعارات يحتاجون إليها فقط؟

هل يعتمد على الموقف؟

هل لديك أي أفكار عامة حول التفاصيل الخاصة بـ Observables/Listenables؟

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

المحلول

أنت تتداول تكاليف الصيانة مقابل تكاليف التسليم. إذا كان لديك تعريفات أحداث دقيقة ، يحصل كل مراقب على ما يحتاجه بالضبط ، لذلك لا تدفع ثمن النفقات العامة للتسليم للمراقبين غير المهتمين - ولكن هذا الادخار تكاليف لأن كل نوع جديد من الكتلة يحتاج إلى إضافة إلى النظام بطريقة ما.

في أنظمة المراسلة/الفرعية حيث تكون تكاليف التسليم مرتفعة نسبيًا (الرسائل التي تتدفق عبر الشبكات) يحتاج المرء عادةً إلى إيلاء اهتمام دقيق لموضوع الموضوع. غالبًا ما يكون التسلسل الهرمي للموضوع المصمم بعناية مفيدًا. لذلك نحصل على أنماط مثل

  sport
       football
              england 
                    premier
                    champioship
              scotland
                    spl
              france
                    ...
       cricket
              australia
                    ...
              india
              sri lanka

وبالتالي السماح الاشتراكات على مستويات مختلفة. يمكنك الاشتراك في جميع الرياضة أو (كما قد يكون بعض الناس) وصولاً

    sport/football/england/championship/watford

نصائح أخرى

بالإضافة إلى قاعدة عامة ، فإن الواجهات المتخصصة تعمل بشكل جيد من الأذى ، لذلك سأقوم بالتأكيد بتنفيذ أكثر من أقل.

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

إذا اضطررت إلى القيام بذلك ، فربما أقوم بإنشاء فصل يمكن ملاحظته والذي سيكون له حدث لكل نوع من الكتلة ، وحدث عالمي واحد لأي كتلة. كيندا مثل الطريق الأوسط.

إنها ليست مجرد صيانة. والأكثر تحديداً هو الواجهة بين الملاحظات والمراقبين كلما أصبحت أكثر اقترنًا.

تحتوي عصابة Four Book على قسم لهذه المشكلة بالذات ، وينصحون بعدم كل من نماذج الدفع والسحب. قد يكون نموذج السحب غير فعال ، فقد لا يمكن إعادة استخدام نموذج الدفع بدرجة كافية.

لذلك ، يعتمد بشدة على الموقف. أنا أميل إلى الذهاب قليلا فوق نموذج السحب.

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