سؤال

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

أعتقد أيضًا أن هذا يعني أن كائنات BLL يجب ألا تحتوي أبدًا على بيانات ، لأن البيانات تمثل الحالة - لذلك لكل عملية BLL التي تم استدعاؤها ، يجب طلب أي بيانات مطلوبة (أو جلبها من ذاكرة التخزين المؤقت) ثم يتم التخلص منها. هل هذا الصوت عن الحق؟

شكرًا.

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

المحلول

من الناحية النظرية ، نعم ، يمكن أن تعني BLL عديمة الجنسية أن جميع الطرق يمكن أن تكون ثابتة.

ومع ذلك ، هناك بعض الاعتبارات التي قد تتأرجح نحو استخدام مثيلات الكائنات BLL بدلاً من ثابت.

  1. تقدم الطرق الثابتة اقترانًا ضيقًا بين الفصول ويمنعك من استخدام واجهات EG إلى تبعيات زوجين فضفاضة. يؤدي استخدام واجهات إلى تحسين قابلية اختبار BLL لأنه يمكن الآن الاستهزاء به عند كتابة اختبارات الوحدة لطبقة الخدمة. إذا كانت طرق BLL ثابتة ، فلن تتمكن عمومًا من القيام بذلك دون "حلول" (على سبيل المثال ستحتاج TypeMock أو Microsoft Fakes في بيئة .NET).

  2. على طريقة BLL معقدة (مثل منطق المعاملات الكبيرة) ، قد ترغب في إعادة صياغة كل من قواعد عملك إلى عدة طرق منفصلة ، وعلى النات انتهاكات. في هذه الحالة ، يمكن أن يكون مرهقًا في تحريك الكيان / الكيانات التي يتم التحقق منها وتراكم انتهاكات القاعدة ، وبدلاً من ذلك ، انتخاب تخزينها في حالة فئة. يمكن أن تساعد فئة أساسية أو عام لمثيل BLL هنا.

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