PHP设计模式-模板方法

概述

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

核心思想

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

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

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

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

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

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

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

还有一个很通俗的比喻

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容