عادة ما يكون IOC هو ما نسميه الانعكاس السيطرة ، وهو أيضًا محور جافا وغالبًا ما يُطلب منه خلال المقابلات.
يعطي انعكاس التحكم (IOC في اختصار اللغة الإنجليزية) الحق في إنشاء كائنات للإطار ، وهو ميزة مهمة في الإطار وليس مصطلحًا خاصًا للبرمجة الموجهة للكائنات. ويشمل الحقن التبعية (DI) وبحث التبعية.
يقوم IOC بتغيير الطريقة التي يكتسب بها البرنامج كائنات ، من بداية كائن جديد إلى إنشاء وحقن إطار عمل طرف ثالث. تحدد أطر عمل الطرف الثالث بشكل عام التنفيذ الذي يتم حقنه من خلال التكوين ، وبالتالي تقليل اقتران رمز المصدر.
ما هي أكبر فائدة من IOC؟
نظرًا لأن توليد الكائنات محددة في XML ، فسيصبح الأمر بسيطًا للغاية عندما نحتاج إلى التغيير إلى فئة فرعية للتنفيذ (عادةً ما تكون هذه الكائنات واقعية في نوع من الواجهة) ، فقط قم بتعديل XML ، حتى نتمكن من تنفيذ التوصيل الساخن للكائنات (مثل واجهة USB وقرص SCIS).
يمكن تقسيم IOC إلى حقن التبعية (DI) والبحث عن التبعية وفقًا لطريقة التنفيذ.
DI هو النهج الفني الرئيسي للسيطرة على الانقلاب ، مقسمة إلى حقن Setter وحقن المنشئ
حقن Setter
بعد إنشاء إنشاء الفول من خلال استدعاء مُنشئ المعلمة أو طريقة المصنع الثابتة بدون معلمة ، يتم استدعاء طريقة Setter الخاصة بالفاصوليات لتحقيق حقن Setter.
الفئة العامة jdbcdatasource () {private string driver ؛ public void setDriver (سلسلة سائق) {class.forname (driver) ؛ this.driver = driver ؛}} ...............بعد ذلك ، قم بتنفيذ ملف تكوين حقن Setter
<bean id = "datasource"> <property name = "driver" value = "oracle.jdbc.oracledriver"/> <property name = "url" value = "jdbc: oracle: thin:@localhost: 1521: orcl"
حقن المنشئ
يتم تحقيق ذلك من خلال استدعاء مُنشئ مع المعلمات. عند إنشاء إنشاء الحاوية ، سيتم تنفيذ المنشئ المقابل وفقًا لنوع المعلمة.
الفئة العامة OracleUserdao تنفذ userdao {private jdbcdatasource dataSource ؛ public oracleuserdao (jdbcdatasource dataSource) {this.datasource = datasource ؛}} ................حدد الحقن حسب فهرس المعلمة البناء
<bean id = "dataSource"> <proerty name = "driver" value = "oracle.jdbc.oracledriver"/> <property name = "url" value = "jdbc: oracle: thin:@localhost: 1521: orcl"/> <property name = user "value = id = "userDao"> <corntrutor-argindex = "0" ref = "datasource"/> </bean>
لخص
ما سبق هو كل شيء عن تحليل رمز IOC في الربيع ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
شرح مفصل للـ IOC و DI في الربيع
مقدمة مفصلة لتنفيذ محاكاة IOC في الربيع
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!