Warning: fopen(/homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/gt-cache/th/_th_tag_library) [function.fopen]: failed to open stream: Disk quota exceeded in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1183

Warning: flock() expects parameter 1 to be resource, boolean given in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1184

Warning: fwrite(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1188

Warning: fclose(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1190
Evilprofessor.co.uk ห้องสมุด»

Posts tagged: ห้องสมุด

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

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

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

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

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

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

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

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

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

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

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

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













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

9 ผู้เข้าชมออนไลน์ในขณะนี้
7 แขก, 2 บอท, 0 สมาชิก
ผู้เข้าชมสูงสุดวันนี้: 13 ที่ 09:36 น. UTC
เดือนนี้: 40 ที่ 23-05-2012 03:33 น. UTC
ในปีนี้: 69 ที่ 27-02-2012 09:56 น. UTC
เวลาทั้งหมด: 130 ที่ 28-03-2011 10:40 UTC