亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

分別使用構造方法、普通方法實現(xiàn)依賴注入

オリジナル 2019-04-20 21:05:31 299
サマリー:<?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)建學生類  使用構造方法實現(xiàn)依賴主入
class Student
{
    private  $course = null;

    public function  __construct(Course $course)
    {
        $this->course = $course;
    }

    public function MyCourse()
    {
        return '我學習了'.$this->course->php().'課程';
    }
}
// 實例化 課程類
$course = Course::instance();
// 實例化學生類
$student = new Student($course);
// 輸出
print_r($student->MyCourse());
echo '<hr/>';


// 使用普通方法實現(xiàn)依賴注入
class Students
{
    // 使用普通方法實現(xiàn)依賴注入
    public function MyCourse(Course $course)
    {
        return '我學習了'.$course->Mysql().'課程';
    }
}

// 實例化普通方法的學生類
$student1 = new Students();
print_r($student1->MyCourse($course));


添削の先生:天蓬老師添削時間:2019-04-22 09:53:25
先生のまとめ:面向對象編程的本質是通過多個對象之間的相互調用實現(xiàn)功能, 而對象的實例化過程, 如果在另一個對象內部完成, 會造成這個對象嚴重依賴另一個對象的實現(xiàn), 這種現(xiàn)象叫耦合, 為了解決這個問題, 將對象的創(chuàng)建過程前移,放在對象的外部完成,再通過傳參的方式注入到另一個對象內部...

手記を発表する

人気のある見出し語