IOC มักจะเป็นสิ่งที่เราเรียกว่าการกลับรายการควบคุมซึ่งเป็นจุดสนใจของ Java และมักจะถูกถามในระหว่างการสัมภาษณ์
การผกผันของการควบคุม (IOC เป็นตัวย่อภาษาอังกฤษ) ให้สิทธิ์ในการสร้างวัตถุให้กับเฟรมเวิร์กซึ่งเป็นคุณลักษณะที่สำคัญของเฟรมเวิร์กและไม่ใช่คำพิเศษสำหรับการเขียนโปรแกรมเชิงวัตถุ มันรวมถึงการฉีดพึ่งพา (DI) และการค้นหาการพึ่งพา
IOC เปลี่ยนวิธีที่โปรแกรมได้รับวัตถุจากจุดเริ่มต้นของวัตถุใหม่ไปสู่การสร้างและการฉีดกรอบของบุคคลที่สาม เฟรมเวิร์กของบุคคลที่สามโดยทั่วไประบุว่าการใช้งานใดที่ถูกฉีดผ่านการกำหนดค่าซึ่งจะช่วยลดการมีเพศสัมพันธ์ของซอร์สโค้ด
ประโยชน์ที่ใหญ่ที่สุดของ IOC คืออะไร?
เนื่องจากการสร้างวัตถุถูกกำหนดไว้ใน XML มันจะกลายเป็นเรื่องง่ายมากเมื่อเราต้องการเปลี่ยนเป็นคลาสย่อยการใช้งาน (โดยปกติแล้ววัตถุดังกล่าวจะเป็นจริงในอินเทอร์เฟซบางชนิด) เพียงแค่ปรับเปลี่ยน XML เพื่อให้เราสามารถใช้เสียบที่ร้อนแรงของวัตถุ
IOC สามารถแบ่งออกเป็นการฉีดพึ่งพา (DI) และการค้นหาการพึ่งพาตามวิธีการดำเนินการ
DI เป็นวิธีการทางเทคนิคหลักในการควบคุมการผกผันแบ่งเป็นการฉีด setter และการฉีดคอนสตรัคเตอร์
การฉีด
หลังจากอินสแตนซ์ถั่วโดยเรียกใช้วิธีการสร้างแบบไม่มีพารามิเตอร์หรือวิธีการแบบสแตติกพารามิเตอร์แบบโรงงานวิธีการตั้งค่าของถั่วจะถูกเรียกให้ตระหนักถึงการฉีด setter
คลาสสาธารณะ JDBCDATASOURCE () {ไดรเวอร์สตริงส่วนตัว; โมฆะสาธารณะ setDriver (ไดรเวอร์สตริง) {class.forName (ไดรเวอร์); this.driver = ไดร์เวอร์;}} ...............ถัดไปใช้ไฟล์ XML การกำหนดค่าการฉีด Setter Injection
<bean id = "dataSource"> <property name = "driver" value = "oracle.jdbc.oracledriver"/> <ชื่อคุณสมบัติ = "url" value = "jdbc: Oracle: Thin: @localhost: 1521: ORCL"/> <property name = "user" value = "
การฉีด
สิ่งนี้ทำได้โดยการเรียกตัวสร้างที่มีพารามิเตอร์ เมื่อคอนเทนเนอร์มีการสร้างอินสแตนซ์ตัวสร้างที่สอดคล้องกันจะถูกดำเนินการตามประเภทพารามิเตอร์
คลาสสาธารณะ OracleUserdao ใช้ UserDao {DataSource ส่วนตัว JDBCDataSource; OracleUserDao (JDBCDATASource DataSource) {this.datasource = dataSource;}} ...................ระบุการฉีดโดยดัชนีพารามิเตอร์การสร้าง
<bean id = "dataSource"> <proerty name = "driver" value = "oracle.jdbc.oracledriver"/> <name property = "url" value = "jdbc: Oracle: Thin: @localhost: 1521: ORCL"/> <ชื่อ id = "userdao"> <construtor-argindex = "0" ref = "dataSource"/> </ebean>
สรุป
ข้างต้นเป็นเรื่องเกี่ยวกับการวิเคราะห์รหัส IOC ของฤดูใบไม้ผลิฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงเว็บไซต์นี้ต่อไปได้:
คำอธิบายโดยละเอียดเกี่ยวกับ IOC และ DI ของฤดูใบไม้ผลิ
การแนะนำอย่างละเอียดเกี่ยวกับการใช้งานการจำลอง IOC ของฤดูใบไม้ผลิ
หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!