سؤال

(هذا السؤال تحديدا في C #، ولكن ينطبق عموما على .NET)

ولدي طلب كبير قليلا لديه التصميم الجيد إلى حد ما، وتقسيمها إلى أقسام رئيسية عبر واجهات (وقد تم ذلك لمساعدة تطور مواز).

لدينا الآن مجموعة الأساسي من فئات محددة أن تنفيذ الواجهات المطلوبة، ولكن لدينا أيضا مجموعات إضافية من فصول محددة لحالات بديلة والاختبار.

في هذه اللحظة نحن سحب جميع هذه الطبقات معا على أعلى مستوى في التعليمات البرمجية:

IMyInterface xComponent = new ConcreteXComponent1();

إذا أريد لمبادلة خارج المكونات ثم ليس لدي سوى لتغيير هذا الخط وإعادة ترجمة:

// IMyInterface xComponent = new ConcreteXComponent1();
IMyInterface xComponent = new ConcreteXComponentAlternative();

وهذا يعمل كبيرة، ولكن من الواضح يتطلب إعادة ترجمة - فما استقاموا لكم فاستقيموا بدلا من فئة محددة تم اختيار باستخدام قيمة من ملف التكوين.

ما هو نمط قياسي لتغيير الطبقات الخرسانة باستخدام ملف التكوين؟ هل هناك مكتبة القياسية يمكنني استخدام هذا لا يحل هذه المشكلة بالنسبة لي؟

وشكرا!

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

المحلول

وأنت تريد أن ننظر إلى حاويات اللجنة الاولمبية الدولية. (Spring.NET، StructureMap، وندسور، الخ.)

نصائح أخرى

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

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

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