模板模式先定义一个抽象类,然后在抽象类中定义个public方法 和 N个抽象方法(需要子类继承并且可以自己可以自己实现方法的详细逻辑的),最后在public方法调用抽象的方法(这样子类实例化之后可以直接调用抽象类的public方法)。逻辑的细节留给具体的子类去实现。
上代码:
<?php
abstract class AbstractClass { // 抽象模板角色
public function templateMethod() { // 模板方法 调用基本方法组装顶层逻辑
$this->primitiveOperation1();
$this->primitiveOperation2();
}
abstract protected function primitiveOperation1(); // 基本方法
abstract protected function primitiveOperation2();
}
class ConcreteClass extends AbstractClass { // 具体模板角色
protected function primitiveOperation1() {}
protected function primitiveOperation2(){}
}
$class = new ConcreteClass();
$class->templateMethod();
?>
总结:模板模式的话,模板只有一个,就像写作文一样,一个模板给多个学生参考(具体学生如何实现高分作文就看学生的水平了),最终的使用就是 学生实例化然后调用模板,交作业。