模板方法模式:
模板方法模式定义了一个算法的步骤, 并允许子类为一个或多个步骤提供实现。模板方法模式:在一个方法中定义一个
算法的骨架, 而将一些步骤延迟到子类中, 模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。
<?php // 模板方法模式 function echoLine($msg) { echo $msg, '<br/>'; } abstract class TemplateBase { abstract function step1(); abstract function step2(); abstract function step3(); public function doAction() { $this->step1(); if(!$this->skipStep2()) { $this->step2(); } $this->step3(); } /** * 钩子方法 */ public function skipStep2() { return false; } } class ConcreteTemplate extends TemplateBase { public function step1() { echoLine('This is step 1'); } public function step2() { echoLine('This is step 2'); } public function step3() { echoLine('This is step 3'); } // 用来控制是否跳过某些步骤 public function skipStep2() { return false; } } // test code $ct = new ConcreteTemplate(); $ct->doAction();
以上是PHP模板方法模式的实例代码分享的详细内容。更多信息请关注PHP中文网其他相关文章!