سؤال

لدي تطبيق iPhone الذي يحصل بشكل أساسي على معلومات من API (في XML، ولكن ربما JSON في النهاية). عادة ما يتم عرض كائنات النتائج في مراقب العرض (جداول أساسا).

هنا هي الهندسة المعمارية الآن.

لدي فصول NSoperation التي جلب الكائنات المختلفة من الخادم البعيد. سيأخذ كل من فصول Nxoperation هذه طريقة مفوضة مخصصة والتي ستظهر الكائنات الناتجة عند تحليلها، ثم في النهاية طريقة عندما لا تتوفر المزيد من النتائج. لذلك، سيكون بروتوكول المندوبين شيئا مثل:

(void) ObjectTypeResult:(ObjectType *)result;
(void) ObjectTypeNoMoreResults;

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

لذلك، أنا أفكر في استخدام NSNotification لإزالة استخدام المندوبين. يمكنني تضمين الكائن في جزء UserInfo من الإشعار والكائنات المشاركة فقط كما وردت، ثم حدث أخير عند عدم توفر المزيد. ثم يمكنني فقط الحصول على طريقة واحدة في كل وحدة تحكم عرض لتلقي جميع البيانات، حتى عند استخدام كائنات متعددة في وحدة تحكم واحدة. †

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

شكرا!

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

المحلول

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

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