1、什么是委托模式?
通过分配或委托至其他对象,委托设计模式能够去除核心对象中的判决和复杂的功能性
2、应用场景:
银行存款,取款,转账操作类
3、实例:
/**
* 银行相关操作类
*/
class brank{
protected $Info=array();
/**
* 传入参数,设置基本信息
* @param string $type 类型
* @param int $money 参数值
* @return 如:设置银行存款类型 updateBrankInfo('RMB','0.4%') // 类型:人民币,利率:0.4%
*/
public function updateBrankInfo($type,$money){
$this->Info[$type]=$money;
}
/*
* 运行委托模式
* @param string $branktype 操作类型
* @param int $money 操作金额数
* @return class
*/
public function brankWithdraw($branktype){
$obj=new $branktype;
return $obj->brankMain($this->Info);
}
}
/**
* 银行存款操作类
*/
class brankDeposit{
public function brankMain($data){
return $data['brankDeposit'];
}
}
/**
* 银行取款操作类
*/
class brankWithdraw{
public function brankMain($data){
//$data['brankWithdraw'] //这个值是在实例化后就设置好的
return $data['brankWithdraw'];
}
}
/**
* 存取款委托设计模式类
* -------------通过 brankWithdraw()方法 分配指定的操作类对象
* -------------通过 updateBrankInfo()方法 设置相关参数。如:存取款金额,存取款类型,利率等等
* @var unknown_type
*/
$brank=new brank();
$brank->updateBrankInfo('credit','积分名称');
$brank->updateBrankInfo('brankDeposit', $money);//类型:存款 金额:$money
/
$brankreturn=$brank->brankWithdraw('brankDeposit');//操作存款类
/
$brankreturn=$brank->brankWithdraw('brankDeposit'); 操作取款类