模板方法模式:
模板方法模式定义了一个算法的步骤, 并允许子类为一个或多个步骤提供实现。模板方法模式:在一个方法中定义一个
算法的骨架, 而将一些步骤延迟到子类中, 模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。
<?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模板方法模式的实例代码分享的详细内容。