首页 技术 正文
技术 2022年11月18日
0 收藏 672 点赞 2,175 浏览 890 个字
<?php/**
* 责任链模式
* 组织一个对象链处理一个请求,每个处理对象知道自己能处理哪些请求,并把自己不能处理的请求交下一个处理对象
*
* 适用场景:
* 1、有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定。
* 2、在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。
*/
abstract class Handler { protected $_power = NULL; abstract public function process($lev);
}class Level1 extends Handler { protected $_power = 10;
protected $_top = 'Level2'; public function process($lev) {
if ($lev <= $this->_power) {
echo '处理级别:Level1(~10)<br>';
return;
}
$top = new $this->_top;
$top->process($lev);
}}class Level2 extends Handler { protected $_power = 100;
protected $_top = 'Level3'; public function process($lev) {
if ($lev <= $this->_power) {
echo '处理级别:Level2(11~100)<br>';
return;
}
$top = new $this->_top;
$top->process($lev);
}}class Level3 extends Handler { protected $_power;
protected $_top = NULL; public function process($lev) {
echo '处理级别:Level3(100~)<br>';
return;
}}/**
* 测试用例
*/
$handler = new Level1();
echo '测试1:';
$handler->process(1);
echo '测试11:';
$handler->process(11);
echo '测试111:';
$handler->process(111);
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,078
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,553
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,402
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,177
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,814
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898