<?php
/**
* 2020-6-3 Xun
* Responsibility(责任链模式)
* 用举报举列子,班长,老师,校长
* 在面向对象设计法则中有一个开闭原则:对修改封闭,对扩展开放
* 适配器说白了就是不改变原有类的基础上通过继承父类,把父类的一些数据进行操作以达到合适的结果
*/
//班长类
class monitor{
//三级及三级以下事件让班长处理
private $num=3;
//班长处理不了的请求上一级老师处理
private $top='teacher';
//处理方法
public function deal($type)
{
//判断事件程度
if($this->num>=$type){
echo '问题不大,班长处理';
}else{
//班长无法处理,请求老师处理
$obj=new $this->top;
$obj->deal($type);
}
}
}
//老师类
class teacher{
//八级及八级以下事件让班长处理
private $num=8;
//老师处理不了的请求上一级校长处理
private $top='principal';
//处理方法
public function deal($type)
{
//判断事件程度
if($this->num>=$type){
echo '问题不太严重,老师能够处理';
}else{
//老师无法处理,请求校长处理
$obj=new $this->top;
$obj->deal($type);
}
}
}
//校长类
class principal{
private $num=null;
private $top=null;
//处理方法
public function deal($type)
{
echo '问题严重,校长出马处理';
}
}
//实例化班长类
$obj=new monitor();
$obj->deal(50);
PHP设计模式之责任链模式
最新推荐文章于 2023-03-31 01:21:02 发布