初识PHP设计模式--代理模式

 最后学习的一种结构型模式是  代理模式(Proxy)
 主要用于客户端无法直接访问一个对象的时候就可以通过代理模式来间接访问对象。
 这种模式也比较常用,代码的结构和外观模式有些相似,也挺容易混淆的。

 在网上查了学习了很多的资料,去对比了两者的特点,总结一下:

 外观模式主要是描述类与类的关系,提供一个统一的外观接口类去实现多个类的方法。

 代理模式更多的是提供一个代理类去完成子类内部的所有方法,就像客户需要去委托一个代理机构去寻找一个专业的人去帮他们完成专业的事情,其中真实对象(专业人才)与代理对象(代理机构)需要实现相同的接口。

<?php
// 代理模式 index.php
header("Content-Type:text/html;charset=utf-8");

require_once "Proxy.php";

// 代理对象
$obj = new Proxy("专业的事情");

// 展示
$obj->Show();
<?php

// 代理接口
interface IProxy {
    function Show();
}

// 真实对象
Class Profession implements IProxy
{
    /**
     * 私有 专业事情
     * @var string
     */
    private $Things;
    
    /**
     * 构造方法
     * @access public 
     * @param  string $things 专业的事情
     */
    function __construct($things){
        $this->Things = $things;
    }

    /**
     * 真实对象的展示方法
     * @access public
     */
    function Show(){
    	echo "专业的人才做{$this->Things}";
    }

}  


// 代理对象
Class Proxy implements IProxy
{
    /**
     * 私有真实对象变量
     * @var object
     */
	private $Pro;

    /**
     * 构造方法
     * @access public 
     * @param  string $things 专业的事情
     */
	function __construct($things){
		$this->Pro = new Profession($things);
	}

    /**
     * 代理对象的展示方法
     * @access public
     */
    function Show(){
    	$this->Pro->Show();
    }
}  


输出结构:

专业的人才做专业的事情

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值