php 设计模式之 模板
1. 模板模式
属于行为型模式
在抽象父类中定义一个模板方法的方法,通过子类的覆盖使得相同算法框架可以有不同的执行结果
2. 实列
abstract class AbstractClass {
public function TemplateMethod() {
$this->PrimitiveOperation1();
$this->PrimitiveOperation2();
}
abstract public function PrimitiveOperation1();
abstract public function PrimitiveOperation2();
}
class ConcreteClassA extends AbstractClass {
public function PrimitiveOperation1() {
echo '具体类A实现方法1', PHP_EOL;
}
public function PrimitiveOperation2() {
echo '具体类A实现方法2', PHP_EOL;
}
}
class ConcreteClassB extends AbstractClass {
public function PrimitiveOperation1() {
echo '具体类B实现方法1', PHP_EOL;
}
public function PrimitiveOperation2() {
echo '具体类B实现方法2', PHP_EOL;
}
}
$c = new ConcreteClassA();
$c->TemplateMethod();
$c = new ConcreteClassB();
$c->TemplateMethod();