模板方法模式:
模板方法模式定義了一個算法的步驟, 并允許子類為一個或多個步驟提供實現。模板方法模式:在一個方法中定義一個
算法的骨架, 而將一些步驟延遲到子類中, 模板方法使得子類在不改變算法結構的情況下,重新定義算法中的某些步驟。
<?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();
新聞熱點
疑難解答