委托模式顧名思義就是甲讓乙做事,但乙又讓丙做的,而甲是不知道的。 乙所具有的功能是很方便擴展的。 甲方是使用工具的: JiaFang.php 乙方是承接任務的: YiFang.php 丙方是真正做事的: BingFang.php 運行JiaFang.php,輸出結果 ...
委托模式顧名思義就是甲讓乙做事,但乙又讓丙做的,而甲是不知道的。
乙所具有的功能是很方便擴展的。
甲方是使用工具的: JiaFang.php
<?php /* Delegation 委托模式 */ require_once 'YiFang.php'; require_once 'BingFang.php'; $yi_fang = new YiFang(new BingFang()); $yi_fang->doWork();
乙方是承接任務的: YiFang.php
<?php class YiFang { private $delegation; public function __construct($bing_fang) { $this->delegation = $bing_fang; } public function doWork() { $this->delegation->doRealWork(); } }
丙方是真正做事的: BingFang.php
<?php class BingFang { public function doRealWork(){ echo '其實是我做的,我是 ' . __class__; } }
運行JiaFang.php,輸出結果