模板方法模式:
模板方法模式定義了一個演算法的步驟, 並允許子類別為一個或多個步驟提供實作。模板方法模式:在一個方法中定義一個
演算法的骨架, 而將一些步驟延遲到子類別中, 模板方法使得子類別在不改變演算法結構的情況下,重新定義演算法中的某些步驟。
<?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中文網其他相關文章!