php-模板方式模式实现
概述
模板方法(Template Method)设计模式中使用了一个类方法templateMethod(), 该方法是抽象类中的一个具体方法, 这个方法的作用是对抽象方法序列排序,具体实现留给具体类来完成.关键在于模板方法模式定义了操作中算法的"骨架",而由具体类来实现.
摩托车有地方造了,本篇就不造了。本篇我们以销售摩托车为例,现有A,B两种类型门店类型。针对A和B两种门店分别制定了激励政策。A门店销售额满100万奖励15%,B门店销售额满100万奖励10%。以此来激励门店业务人员。实现该需求需要建立狗子(hook)基于模板方法模式。
模式结构
以本文实例代码为参考
- MotorSaleTemplate-摩托销售模板类
- MotorProxyA -销售代理A
- MotorProxyB-销售代理B
UML图例
代码实例
<?php
/**
* +----------------------------------------------------------------------+
* php23种设计模式实现-模板方法模式
* Author:微信公众号:yuantanphp
* 获取更多资源,技术答疑,项目合作请关注微信公众号:yuantanphp
* +----------------------------------------------------------------------+
*/
/**摩托销售模板类 */
abstract class MotorSaleTemplate{
protected $sale_volu; //销售额
protected $hook; //狗子
protected $commission; //提成
protected $target_sale_volu; //目标销售额
//模板方法
function template($sale_volu)
{