1. 程式人生 > >設計模式PHP實現之------委托模式

設計模式PHP實現之------委托模式

gpo truct 運行 src .com bin fun body require

委托模式顧名思義就是甲讓乙做事,但乙又讓丙做的,而甲是不知道的。

乙所具有的功能是很方便擴展的。

甲方是使用工具的: 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,輸出結果

技術分享圖片

設計模式PHP實現之------委托模式