abstrakt:<?php /** * 依賴注入 * Date: 2019/4/20 * Time: 20:51 */ // 創(chuàng)建課程類 class Course { // 使用單利模式 &nbs
<?php /** * 依賴注入 * Date: 2019/4/20 * Time: 20:51 */ // 創(chuàng)建課程類 class Course { // 使用單利模式 protected static $instance = null; private function __construct(){} private function __clone(){} public static function instance() { if(is_null(static::$instance)) { static::$instance = new static; } return static::$instance; } // PHP 課程 public function php(){ return 'PHP'; } // 課程 Mysql public function Mysql() { return 'Mysql'; } } // 創(chuàng)建學(xué)生類 使用構(gòu)造方法實現(xiàn)依賴主入 class Student { private $course = null; public function __construct(Course $course) { $this->course = $course; } public function MyCourse() { return '我學(xué)習(xí)了'.$this->course->php().'課程'; } } // 實例化 課程類 $course = Course::instance(); // 實例化學(xué)生類 $student = new Student($course); // 輸出 print_r($student->MyCourse()); echo '<hr/>'; // 使用普通方法實現(xiàn)依賴注入 class Students { // 使用普通方法實現(xiàn)依賴注入 public function MyCourse(Course $course) { return '我學(xué)習(xí)了'.$course->Mysql().'課程'; } } // 實例化普通方法的學(xué)生類 $student1 = new Students(); print_r($student1->MyCourse($course));
Korrigierender Lehrer:天蓬老師Korrekturzeit:2019-04-22 09:53:25
Zusammenfassung des Lehrers:面向?qū)ο缶幊痰谋举|(zhì)是通過多個對象之間的相互調(diào)用實現(xiàn)功能, 而對象的實例化過程, 如果在另一個對象內(nèi)部完成, 會造成這個對象嚴(yán)重依賴另一個對象的實現(xiàn), 這種現(xiàn)象叫耦合, 為了解決這個問題, 將對象的創(chuàng)建過程前移,放在對象的外部完成,再通過傳參的方式注入到另一個對象內(nèi)部...