责任链模式: 为请求创建了一个接收者对象的链,并沿这条链传递该请求,直到有对象处理它为止。这种模式能够给予请求的类型,对请求的发送者和接收者进行解耦。
责任链模式最显著的优点就是将请求和处理分开,请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌,两者解耦。
避免超长链的出现
简单实例:员工请假时,请假1天需小领导批准;请假两天需中领导批准,请假三天需大领导批准。
<?php class smLeader{ public $leder_no=1; public $up='mdLeader'; public function approval($day){ if($this->leder_no>=$day){ echo '小领导批准'; }else{ $up=new $this->up(); $up->approval($day); } } } class mdLeader{ public $leder_no=2; public $up='lgLeader'; public function approval($day){ if($this->leder_no>=$day){ echo '中领导批准'; }else{ $up=new $this->up(); $up->approval($day); } } } class lgLeader{ public $leder_no=3;public function approval($day){ echo '大领导批准'; } } $sm=new smLeader(); $sm->approval(3);
参考连接:http://video.1kejian.com/video/?79018-0-10.html