如何在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 "<br>"; $bank->brankWithdraw("brankWithdraw");
运行结果:
4000
2000
传统方式:
在传统方式下,我们需要判断当前操作是取款操作还是存款操作,在分别调用Bank类中的取款操作和存款操作。
委托模式:
在委托模式下,我们将不需要客户端的判断操作,对客户端来说,需要什么操作,直接传入操作类型即可,Bank类可自动判断操作类型,返回相应操作的操作结果。当我们的操作类型非常多的时候,在客户端用if else
判断无疑是很可怕的,再假如我们在很多地方都要有这块判断代码,我们需要对这些地方的判断代码都进行修改(加入后来添加的判断),而采用委托模式,我们仅仅需要在新添加的地方添加相应需要的类型即可,不需要改动其它地方的客户端代码(很大程度上提高了代码的复用性)。
php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。
关于如何在PHP中定义委托模式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。