php設計模式(六)橋接模式

   作用:將兩個不相關的類結合在一起,通過兩個類中的方法和屬性,得到新的功能

// 講師分配
abstract class Students
{
    abstract public function classroom();
}

class OpenStudents extends Students
{
    public function classroom()
    {
        return '公開課教室1,公開課教室2,公開課教室3';
    }
}

class VipStudents extends Students
{
    public function classroom()
    {
        return 'VIP教室1,VIP教室2,VIP教室3';
    }
}

// 學員上課
abstract class Listen
{
    abstract public function project($who, $course);
}

class Course extends Listen
{
    public function project($who, $course)
    {
        return $course . '這幾個教室正在上' . $who;
    }
}

class StudentListen
{
    public $classroom;

    public $course;

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

    public function privilege($who)
    {
        $roomName = $this->classroom->classroom();
        return $this->course->project($roomName, $who);
    }

}
$classroom = new OpenStudents(); // 公開課教室
$course = new Course();

$obj = new StudentListen($classroom, $course);
echo $obj->privilege('swoole');

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章