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

Posted bluepegasus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式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实现之------委托模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之代理模式(Proxy)详解及代码示例

设计模式之代理模式20170724

Spring系列设计模式之代理模式

php模式之装饰者模式学习

php设计模式之责任链模式实现举报功能实例代码

PHP面向对象之选择工厂和更新工厂