PHP设计模式-模板方法

概述

模板方法是一种很常用的设计方法

核心思想

父类是一个抽象类其中可以有多个抽象方法,然后实现的方法用来调用这些抽象方法。目的是为了调用顺序的一种保证。也是这种设计模式中比较经典的方式。

咱们来看一个很典型的父类

abstract class TmAb
{
    protected $pix;
    protected $cap;

    /**
     * 注意这边是一个模板方法 他是有具体实现的,一般确定的是其他方法的调用顺序
     * @author aaron <[email protected]>
     */
    public function templateMethod()
    {
        $this->addPix();
        $this->addCaption();
    }

    abstract protected function addPix();
    abstract protected function addCaption();
}

这上面这段代码意味着,我只要是继承这个父类那么我可以自由扩展两个抽象方法,和有权利复写一个实现了顺序的方法(当然这边是不建议这么做的)

主要的思路就是父类实现的那个方法控制了调用的顺序,子类来决定调用的细节,这种手段在框架中是很常见的。

还有一个很通俗的比喻

节目规定了 跳绳 跑步 游泳 这三项的顺序,但是你用什么动作和技巧来完成没有明确说明。就可以理解为是这种模式了。

你可能感兴趣的:(PHP设计模式-模板方法)