[MUSIC]
دعونا الآن نلقي نظرة ثاقبة على حقن التبعية.
ما هو بالضبط حقن التبعية وكيف هو ذات الصلة الزاوي؟
دعونا نتحدث عن ذلك بعد ذلك.
لذا، ما هو بالضبط حقن التبعية؟
حقن التبعية هو نمط تصميم البرمجيات.
هذا هو نمط مفيد لتنفيذ التطبيقات حيث يكون لديك
كائن واحد يعتمد على كائن آخر بطريقة فعالة.
الآن حقن التبعية، كما ندرك، لديها جزأين.
الإعالة والحقن
دعونا نتحدث عن التبعية أولا.
التبعية تعني أن الكائن الخاص بك يعتمد على كائن آخر.
لذلك، هذا هو السبب في أن هذا هو التبعية بين الكائن الخاص بك وكائن آخر.
الحقن يتحدث عن تمرير التبعية إلى كائن تابع.
لذا، إذا كان لديك كائن، إذا كان هناك آلية تسمح
لك بأخذ كائن ثم جعله متاحًا لكائن ثان،
بحيث يمكن للكائن الآخر الاستفادة منه دون أن يكون على علم
بالضبط بكيفية تنفيذ الكائن الأول أو مسحه.
لذلك، في هذه الحالة الكائن الذي يعتمد غير مدركين،
أو لا داعي للقلق حول كيفية تنفيذ الكائن الآخر.
يحتاج فقط إلى الاستفادة منه، داخل الكائن الخاص بك، أينما كان.
تم صياغة حقن التبعية من قبل مارتن فاولر في عام 2004.
وهو تصميم برمجي مفيد يشدد على مزيد من الاعتماد.
إذا كان الكائن يعتمد على كائن آخر
، فهناك ثلاث طرق يمكنه الوصول إلى الكائن الآخر.
1، يمكنه إنشاء الكائن التابع نفسه باستخدام المشغل الجديد الذي
رأيته في حالة الفئات.
لذلك، على سبيل المثال، إذا كنت بحاجة إلى كائن جديد من نوع فئة،
فإنك تقوم بإنشاء هذا الكائن باستخدام اللغات الجديدة داخل، مثل C ++ أو
Java، وحتى كتابة البرنامج النصي.
بعد ذلك، يمكنك الاستفادة من هذا الكائن المعين.
والطريقة الأخرى هي إعلان الكائن الآخر كمتغير عام،
ثم تبحث عن التبعية باستخدام المتغير العام.
الطريقة الثالثة للقيام بذلك هي أن يتم تمرير التبعية إليك،
أينما كانت هناك حاجة إليها.
حتى إذا كنت تعتمد على شيء آخر، ثم أن شيئا آخر سيتم
حقنه في لك من قبل نظام أينما كان مطلوبا.
لذلك، الآن الخيار الثالث يمنحك الكثير من المرونة في طريقة
تصميم هذا البرنامج.
لذلك في هذا النهج، في النهج الثالث،
ليست هناك حاجة للتشفير الثابت بعد التبعية.
في النهجين الأولين، يتم ترميز التبعية بقوة هناك،
لأنك تحتاج إلى أن تكون على دراية تامة بكيفية إنشاء
الكائن الذي تعتمد عليه، داخل الكائن الخاص بك.
في الكائن الثالث،
لأنه يتم حقن الكائن الآخر في لك كلما كنت في حاجة إليه،
لا تهتم حقا كيف يتم إنشاؤه، طالما لديك حق الوصول إليه.
والميزة الأخرى التي يجلبها هذا النهج هي أنه
يسهل سهولة اختبار التطبيق الخاص بك لأنه عندما
تحتاج إلى كائن تعتمد عليه، بدلاً من المرور في
الكائن التابع، يمكنك حتى إنشاء كائن وهمي من النوع
ثم تمريره في لاختبار الكائن المحدد الخاص بك.
هذا الفصل بين الكائن التابع والكائن الآخر
مفيد للغاية كما ندرك في إجراء الاختبار.
سنناقش هذا بإيجاز عندما ننظر إلى اختبار الزاوي في وقت لاحق في هذه الدورة.
حقن التبعية يجلب حوالي أربعة أدوار مختلفة التي نحن بحاجة إلى النظر فيها.
أولاً بالطبع هي الخدمة التي ستستخدمها داخل
المكون الخاص بك على سبيل المثال والتي تحتاج إلى حقنها.
ثانيا العميل الذي يعتمد على الخدمة
التي في هذه الحالة هو المكون الخاص بك.
ثالثا، واجهة، مرة واحدة حقن كيف يمكنك الاستفادة من هذه الخدمة.
وأخيرا الحاقن، الكيان المسؤول عن
حقن هذا الكائن في الكائن الخاص بك.
كما سوف تدرك قريبا جدا،
الزاوي التعبير عن حقن التبعية كثيرا في الطريقة التي يتم تنفيذها.
لذلك هذا هو ما يسهل فصل منطق الأعمال
عن بناء التبعية حتى تتمكن من كتابة منطق عملك
في الكائن المستقل ثم حقنه أينما كان مطلوبًا.
ويتم تمرير التبعية في الكائن الذي يستهلكه
أينما كانت هناك حاجة إليها.
الآن، كيف يتم الاعتناء بهذه الحقن؟
يتم أخذ هذا الحقن الرعاية من قبل subsytem حقن الزاوي.
يعتني النظام الفرعي للحقن الزاوي بإنشاء هذه الخدمات
ثم حقنها في المكون الخاص بك أينما كنت في حاجة إليها.
لذلك يعتني أيضًا بحل التبعيات وكذلك
توفير تلك الكائنات للمكونات الأخرى التي تتطلب هذه الكائنات.
وبالتالي فإن النظام الفرعي حاقن الزاوي يوفر كل هذه الآليات بالنسبة
لنا لتمكين هذا.
كيف يعمل في الواقع؟
سننظر إلى ذلك في التمرين التالي،
حيث سنستخدم الخدمة التي ننشئها في المكونات
التي قمنا بتصميمها لتطبيق Angular الخاص بنا.
[ موسيقى]