模板方法模式

来源:互联网 发布:剑灵龙族男捏脸数据图 编辑:程序博客网 时间:2024/05/15 01:31

模板方法模式:

模板方法模式定义了一个算法的步骤, 并允许子类为一个或多个步骤提供实现。模板方法模式:在一个方法中定义一个

算法的骨架, 而将一些步骤延迟到子类中, 模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。

<?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();


0 0
原创粉丝点击