浅谈php设计模式的责任链模式论文怎么写(浅谈PHP设计模式的责任链模式)
导读:概念: 责任链模式又叫做职责链模式,是属于行为型的一种。...
概念:
责任链模式又叫做职责链模式 ,是属于行为型的一种 。
责任链模式分为两种:
第一种像工厂流水线 ,目的就让每一个环节都进行处理 。
第二种像层层审批,如果其中一个对象无法处理 ,调用下一个对象来进行处理 ,如果一旦能处理 ,链式就此停止 ,以此类推 ,第二种为了程序的健壮性 ,至少得需要一个兜底的模块 ,防止穿透责任链。 适用场景:对请求参数进行逐层过滤 ,用于框架的中间件的开发场景(Laravel Middleware) 。日志框架 ,每个链元素自主决定如何处理日志消息 。
优点:简化了调用端的操作,调用端无须关心请求的处理细节和请求的传递过程 ,因为请求会自动进行传递到整条链路 。
缺点:期间实例化的很多的对象 ,其实完全可以用普通的if去替代 。
调试不方便 。 //责任链模式好像没有固定的实现方案,只是一种思想 ,所以实现一个展示活跃类型的的功能 。这种方式方便调用端处理 ,但是依赖在类的内部,不利于后期维护 。 //也可以优化调用和实例化在类的外部进行 ,缺点是会增加调用端的复杂度 ,有点是可控度更高 。到底如何实现这要看应用场景 ,但是链式的思想是一致的 。 class shortTerm { private function next($time) { return (new OneDay())->show($time); } public function show($time) { if($time <= 3) { return 刚刚活跃; } return $this->next($time); } } class OneDay { private function next($time) { return (new ThreeDay())->show($time); } public function show($time) { if($time <= 24) { return 当天活跃; } return $this->next($time); } } class ThreeDay { private function next($time) { return (new SevenDay())->show($time); } public function show($time) { if($time <= 72) { return 三日内活跃; } return $this->next($time); } } class SevenDay { public function show($time) { return 不活跃; } } //调用端 echo (new shortTerm())->show(600);创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!