百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> PHP设计模式之拜托模式定义与用法简便示例
分享文章到:

PHP设计模式之拜托模式定义与用法简便示例

发布时间:05/20 来源:未知 浏览: 关键词:

本文实例讲述了PHP设计模式之拜托模式定义与用法。分享给大家供大家参考,详细如下:

拜托模式:

通过分配或拜托至其他对象,拜托设计模式能够去除中心对象中的判决和复杂的功效性。

class Bank{
  protected $info;
  /*
  设置根本信息
  @param string $type 类型。例如"RMB"
  @param int $money 利率。例如"0.4%"
  */
  public function updateBrankInfo($type,$money){
    $this->info[$type]=$money;
  }
  /*
  相关操纵(包括存钱、取款操纵)
  @param int $branktype 操纵类型
  */
  public function brankWithdraw($branktype){
    $obj=new $branktype;
    return $obj->brankMain($this->info);
  }
}
/*
拜托接口
*/
interface Delegate{
  /*
  操纵办法:
  实现该接口必须实现的办法
  */
  public function brankMain($info);
}
/*
存钱操纵类
*/
class brankDeposit implements Delegate{
  /*
  存钱操纵
  */
  public function brankMain($info){
    echo $info['deposit'];
  }
} 
/*
取款操纵类
*/
class brankWithdraw implements Delegate{
  /*
  取款操纵
  */
  public function brankMain($info){
    echo $info['withdraw'];
  }
}
/*
客户端测试代码:
*/
$bank=new Bank();
$bank->updateBrankInfo("deposit","4000");
$bank->updateBrankInfo("withdraw","2000");
$bank->brankWithdraw("brankDeposit");
echo "
"; $bank->brankWithdraw("brankWithdraw");

运转结果:

4000
2000

传统方式:

在传统方式下,我们需要判断当前操纵是取款操纵还是存钱操纵,在离别调用Bank类中的取款操纵和存钱操纵。

拜托模式:

在拜托模式下,我们将不需要客户端的判断操纵,对客户端来说,需要什么操纵,直接传入操纵类型即可,Bank类可主动判断操纵类型,返回响应操纵的操纵结果。当我们的操纵类型非常多的时候,在客户端用if else判断无疑是很可怕的,再假设我们在很多地方都要有这块判断代码,我们需要对这些地方的判断代码都停止修改(参加后来增加的判断),而采用拜托模式,我们仅仅需要在新增加的地方增加响应需要的类型即可,不需要改动其它地方的客户端代码(很大程度上提高了代码的复用性)。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有163人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板