委托模式顾名思义就是甲让乙做事,但乙又让丙做的,而甲是不知道的。
乙所具有的功能是很方便扩展的。
甲方是使用工具的: 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,输出结果