หมวดหมู่ : Zend_Cache

เริ่ม Symfony ด่วน DI (พึ่งพาการฉีด) การสอน

โดย , วันเสาร์ 14 สิงหาคม 2010 14:21

คืออะไร พึ่งพาการฉีด (DI)?

ฉีดพึ่งพาเป็นเทคนิคที่ช่วยให้สำหรับวัตถุคู่อย่างอิสระภายในโปรแกรมซอฟต์แวร์ โดยทั่วไปถ้าวัตถุต้องเข้าถึงฟังก์ชันการทำงานของผู้อื่นก็จะถูก instantiated ภายในที่นำไปสู่​​ระบบคู่แน่น โดยการดำเนินการฉีดพึ่งพาเราฉีดวัตถุที่จำเป็นพร้อมใช้งาน (บางครั้งยังเรียกผกผันของการควบคุม -- IOC) ใช้ตัวอย่างต่อไปนี้

  <? PHP
 DecisionMaker คลาส {
     makeDecision ทำงานสาธารณะ ($ array พารามิเตอร์) {
         / Need / อะแดปเตอร์ฐานข้อมูล
         $ DP = ใหม่ DecisionParameters ();
         $ parameterScore = $ DP -> getScore ($ พารามิเตอร์);
         / * ...  ตรรกะการตัดสินใจบางอย่างเพิ่มเติม ...  * /
         กลับ ($ parameterScore> 50);
     }
 } 

ชิ้นส่วนของรหัสนี้จะกล่าวได้ว่าเป็นคู่แน่นกับวัตถุที่ DecisionParameters เขียนใหม่ดังกล่าวข้างต้นในแฟชั่นคู่อย่างอิสระที่เราต้องการได้สิ่งที่ต้องการ ...

  <? PHP
 DecisionMaker คลาส {
     ส่วนตัว $ _dp;
     ฟังก์ชั่น __construct สาธารณะ ($ DP) {
         $ this -> _dp = $ DP;
     }
     makeDecision ทำงานสาธารณะ ($ array พารามิเตอร์) {
         $ parameterScore = $ this -> _dp -> getScore ($ พารามิเตอร์);
         / * ...  ตรรกะการตัดสินใจบางอย่างเพิ่มเติม ...  * /
         กลับ ($ parameterScore> 50);
     }
 } 

ขณะที่การดึงดูดประโยชน์ของรหัสคู่อย่างอิสระเราจะเพิ่มความซับซ้อนดังกล่าวว่าแต่ละครั้งที่วัตถุเป็น instantiated เรายังมีการ instantiate การอ้างอิงและผ่านเหล่านี้ในเกินไป ตัวอย่างเช่นนี้

  $ = DecisionMaker ทางเลือกใหม่ ();
 echo $ ตัวเลือก> makeDecision (array ('ความพยายาม'=>'ต่ำ','กลับ'=>'สูง')); 

ตอนนี้กลายเป็น :

  $ DP = ใหม่ DecisionParameters ();
 $ ทางเลือกใหม่ = DecisionMaker ($ DP);
 echo $ ตัวเลือก> makeDecision (array ('ความพยายาม'=>'ต่ำ','กลับ'=>'สูง')); 

สถานการณ์นี้จะกลายเป็นเจ็บปวดมากขึ้นเป็นตัวเลขของการอ้างอิงสำหรับชั้นเรียนที่เพิ่มขึ้นและสิ่งที่ถ้าการอ้างอิงตัวเองมี dependencies? นี้ค่อนข้างได้อย่างรวดเร็วสามารถกลายเป็นฝันร้ายของการบริหารจัดการวัตถุ! ใส่ภาชนะบรรจุฉีดพึ่งพา (หรือกรอบ) ...
อ่านต่อ'เริ่มต้น Symfony ด่วนสอน DI (พึ่งพาการฉีด)'»













ธีมโดยพาโนรามา Themocracy

5 ผู้เข้าชมออนไลน์ขณะนี้
1 แขก, 4 บอท, 0 สมาชิก
ผู้เข้าชมสูงสุดวันนี้ : 17 ที่ 06:54 UTC
เดือนนี้ : 17 ที่ 18-08-2011 06:54 UTC
ปีนี้ : 130 ที่ 28-03-2011 10:40 UTC
เวลาทั้งหมด : 130 ที่ 28-03-2011 10:40 UTC