设计模式--TemplateMethod(模板方法)

》》》前情回顾:设计原则及模式分类

类别:组件协作(晚绑定)
场景:整体结构稳定,但是子步骤有很多改变
模式定义:
* 定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override重写)该算法的某些特定步骤。
在这里插入图片描述

在这里插入图片描述


public abstract class AbsClass{
    //基本方法
    protected abstract void doSomething();


    protected abstract void doAnything();


    //模板方法
    public void templateMethod() {
        //调用基本方法,完成相关逻辑
        this.doAnything();
        this.doSomething();
    }
}
------
public class ImplAbs222 extends AbsClass {

    protected ImplAbs222(String num) {
        super(num);
    }

    @Override
    protected void doSomething() {
        System.out.println("-----something"+num+"-----");
    }

    @Override
    protected void doAnything() {
        System.out.println("-------anything"+num+"---------");
    }
}
------
public class ImplAbsClass extends AbsClass{

    protected ImplAbsClass(String num) {
        super(num);
    }

    @Override
    protected void doSomething() {
        System.out.println("----doSomething"+num+"-----");
    }

    @Override
    protected void doAnything() {
        System.out.println("-------doAnything"+num+"------");
    }
}
------
public class AbsTest {
    public static void main(String[] args) {
        ImplAbsClass implAbsClass = new ImplAbsClass("111");
        ImplAbs222 implAbs222 = new ImplAbs222("222");
        implAbs222.templateMethod();
        implAbsClass.templateMethod();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值