تم تمرير الإعدادات العالمية على سبيل المثال أو الرجوع مباشرة

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

  •  06-09-2019
  •  | 
  •  

سؤال

لدي فئة تسجيل يتم إنشاء مثيل لها عند بدء تشغيل تطبيق وحدة التحكم والتخزين في متغير ثابت.

إذا كنت ترغب في استخدام فئة لاستخدام المسجل يجب أن يتم تمريرها إلى الفصل في المنشئ أو المشار إليها مباشرة؟

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

هتافات.

لا يوجد حل صحيح

نصائح أخرى

يبدو وكأنه ما تبحث عنه هو نوع من حاوية IOC. وبعد يمكنك استخدام وحدة Entlib أو شيء آخر من هذا القبيل.

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

ماذا عن استخدام بوابة ثابت نمط ?

يمكنك إنشاء مثيل منه وتخزين هذه الحالة كعضو في نفس الفئة والعودة إلى ذلك عبر خاصية.

على سبيل المثال logger.default.
سيؤدي ذلك إلى إرجاع المرجع إلى المثيل الذي تم إنشاؤه.

تحرير: مثال على ذلك يمكن أن يكون Console Class & IT طريقة SETOUT. أعني أنه يمكنك الاستمرار في استخدام Console.Writeline .... وإذا كنت ترغب في تغيير الدفق، استخدم طريقة SetOut. إنه يعيد توجيه الإخراج إلى دفق جديد.

امل ان يساعد.

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