模板模式定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,不同的子类可以以不同的方式实现这些抽象方法。
模板模式角色:
抽象模板角色:定义了一个具体的算法流程和留给子类必须实现的抽象方法。
具体子类角色:实现父类的抽象方法。
假设PC端和APP端都有订单列表,显示的字段和查询条件不一样,但是获取数据都是一样的流程,那么可以定义一个父类,PC端和App端作为子类。
抽象模板角色:
<?php namespace common\services; use Yii; /** * 抽象模板类 * Class TemplateService * * @package common\services */ abstract class TemplateService { protected $params; /** * 返回数据 * * @return mixed */ public function getResult() { $this->initParams(); $data = $this->queryData(); return $data; } /** * 参数的处理 * * @return mixed */ public abstract function initParams(); /** * 获取数据 * * @return mixed */ public abstract function queryData(); }
具体子类角色:
<?php namespace common\servic