喜迎
春节

设计模式——责任链模式


说明

示例

下面看下责任链模式的代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
interface Handler{
public function operation();
}

abstract class AbstractHandler{
private ?Handler $handler=null;

public function getHandler(): ?Handler{
return $this->handler;
}

public function setHandler(Handler $handler){
$this->handler = $handler;
}
}

class MyHandler extends AbstractHandler implements Handler{
private string $name;

public function __construct(string $name){
$this->name = $name;
}

public function operation(){
echo $this->name . ' deal!' . PHP_EOL;
if (($handler=$this->getHandler()) != null){
$handler->operation();
}
}
}


// 调用
$h1 = new MyHandler("h1");
$h2 = new MyHandler("h2");
$h3 = new MyHandler("h3");

$h1->setHandler($h2);
$h2->setHandler($h3);

$h1->operation();
/**
* output:
* h1 deal! h2 deal! h3 deal!
*
*/


总结


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
设计模式——访问者模式
设计模式——访问者模式
说明示例下面看下访问者模式的代码实现 12345678910111213141516171819202122232425262728293031interface Visitor{ public function visit(Subj
2022-05-19
下一篇 
软件的设计模式
软件的设计模式
设计模式的六大原则 总原则:开闭原则(Open Close Principle)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的
2022-05-19
  目录
hexo