欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

设计模式PHP实现之------委托模式

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

设计模式PHP实现之------委托模式