您的位置:首页 > 编程语言 > PHP开发

PHP设计模式-代理模式

2013-07-30 12:14 686 查看
    代理就是帮别人代干某事。例如,我每个月都要去银行交一次水费。

interface Payable
{
public function pay($amount);
}

class MyAccount implements Payable
{

public function pay($amount)
{
echo "交水费";
}
}
    后来,同事告诉我,现在都不用到银行交消费了,通过支付宝就可以了(即支付宝也必须实现pay())。于是我把我的银行帐号与支付宝绑定.
class AlipayAccount implements Payable
{
//我的银行帐户
protected $_myBankAccount;

public function __construct($account)
{
$this->_myBankAccount = $account;
}

public function pay($amount)
{
$this->_myBankAccount->pay();
}
}
       这样我以后交水费都不用往银行跑,直接用支付宝交钱就可以了。这就是代理模式,即我通过支付宝来支付我的水费。这样我还觉得麻烦,那支付宝又提供了一个功能就是每月定时交水费。支付宝每月会到自来水公司查询系统查询到我当月的水费交缴数额。然后每月自动交费。这功能太好了。那我就可以完全解脱出来了。
class AlipayAccount implements Payable
{
//我的银行帐户
protected $_myBankAccount;

public function __construct($account)
{
$this->_myBankAccount = $account;
}

//每月自动支付
public function payEveryMonth()
{
//代码略
}

//获取本月水费额
public function getAmount()
{
//代码略
}

//支付
public function pay($amount)
{
$this->_myBankAccount->pay();
}
}
        这样看来,代理模式可以在不用修改原代码功能的基础上,可以添加新功能。并且能从复杂的逻辑中解脱出来。这就是它的优点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: