版权声明:话不在多,在于精 https://blog.csdn.net/qq_29857681/article/details/88415599
模板方法模式
核心:父类控制流程,子类控制实现
abstract class AbstractWedding
{
// 定义婚礼顺序
public function templateMethod()
{
$this->appendGame();
$this->appendMarriage();
}
// 婚礼的流程行为需要实现的
abstract protected function appendGame();
abstract protected function appendMarriage();
}
// 子类的婚礼进行实现
class Wedding1 extends AbstractWedding
{
protected function appendGame()
{
// 找鞋,喝酒
}
protected function appendMarriage()
{
// 教堂宣誓
}
}
class Wedding2 extends AbstractWedding
{
protected function appendGame()
{
// 发红包
}
protected function appendMarriage()
{
// 亲吻新娘
}
}
// 客户
class Client
{
public function __construct()
{
$wedding = new Wedding1();
$wedding->templateMethod();
}
}