php设计模式之模板方法模式(TemplateMethod)
发表于:2019-08-16 10:33:18浏览:56次
模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
```php
primitiveOperation1();
$this->primitiveOperation2();
}
// 基本方法 抽象方法在子类中必须实现
abstract protected function primitiveOperation1();
abstract protected function primitiveOperation2();
}
// 具体模板角色
class ConcreteClass extends AbstractClass {
protected function primitiveOperation1() { var_dump("调用 primitiveOperation1() 方法"); }
protected function primitiveOperation2() { var_dump("调用 primitiveOperation2() 方法"); }
}
$class = new ConcreteClass();
$class->templateMethod();
?>
```
输出
```
vagrant@vagrant-ubuntu:~$ sudo php templateMethod.php
string(35) "调用 primitiveOperation1() 方法"
string(35) "调用 primitiveOperation2() 方法"
```

