سؤال

ما هي أهم الميزات التي يجب أن تحتوي عليها حاوية IOC؟ يمكنك بسهولة إنشاء حاويات في 15 سطر الكود, ، ولكن ما الذي يجب أن يكون "مفيدًا" في المشروع؟

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

المحلول

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

  1. ترتيب - أي IOC تستخدمه يحتاج إلى الحصول على بعض المواقع المركزية التي تتيح لك تكوين سلوك تلك الحاوية. سواء كان ذلك ملف تكوين أو مجموعة لطيفة من مكالمات API التي يمكن اختتامها في فئة عالمية في مكان ما ، إذا لم تكن الحاوية قابلة للتكوين بسهولة ، فستكون صداعًا.
  2. إدارة مدى الحياة - تريد حقًا حاوية لديها القدرة على السماح لعمر كائن متنوع. قد ترغب في الحصول على كائن معين دائمًا للحصول على ipersoncreator جديد ، لكنك تريد فقط إيبرسونرفير واحد في أي وقت معين.
  3. حقن التبعية التلقائي - حسناً ، لذا فإن حقن التبعية هو المفهوم الذي تم بناؤه IOC على رأسه ، لكنك لا تريد أن تضطر إلى إدارة هذا بنفسك. الفكرة هنا هي أنه إذا طلبت من IpersonCreator لأول مرة ، فيجب أن تحل كل تبعياتها وتبعياتها وما إلى ذلك تلقائيًا.

بشكل عام ، يعتمد ما تحتاجه على المشروع ، ولكن هناك العديد من الحاويات التي تناسب احتياجاتك بشكل جيد.

نصائح أخرى

بترتيب تنازلي للأهمية:

  1. السماح على الأقل بحقن ومقدمية ،
  2. فصل التكوين عن الكود ،
  3. السماح بأنماط مختلفة من التكوين (XML أو التعليقات التوضيحية) ،

سيتطلب ذلك أكثر من 15 سطرًا من التعليمات البرمجية ، ولكن يبدو لي المفتاح لي.

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