设计模式-- 模板方法模式(也叫订阅者模式)

模板模式是一种行为设计模式,它提供了一个抽象类,定义了操作的主要步骤,并允许子类在不改变整体结构的情况下重写特定步骤。通过在抽象类中定义公共方法并调用抽象方法,子类可以根据需求实现细节。例如,一个抽象类定义了两个基本方法,子类可以分别实现这两个方法,从而在运行时定制行为。这种模式类似于写作模板,多个学生可以参考同一模板创作,但具体内容由学生自己发挥。
摘要由CSDN通过智能技术生成

模板模式先定义一个抽象类,然后在抽象类中定义个public方法 和 N个抽象方法(需要子类继承并且可以自己可以自己实现方法的详细逻辑的),最后在public方法调用抽象的方法(这样子类实例化之后可以直接调用抽象类的public方法)。逻辑的细节留给具体的子类去实现。

上代码:

<?php
abstract class AbstractClass { // 抽象模板角色
    public function templateMethod() { // 模板方法 调用基本方法组装顶层逻辑
        $this->primitiveOperation1();
        $this->primitiveOperation2();
    }
    abstract protected function primitiveOperation1(); // 基本方法
    abstract protected function primitiveOperation2();
}
 
class ConcreteClass extends AbstractClass { // 具体模板角色
    protected function primitiveOperation1() {}
    protected function primitiveOperation2(){}
 
}
 
$class = new ConcreteClass();
$class->templateMethod();
?>

总结:模板模式的话,模板只有一个,就像写作文一样,一个模板给多个学生参考(具体学生如何实现高分作文就看学生的水平了),最终的使用就是 学生实例化然后调用模板,交作业。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值