Java 常用模式 模板方法模式

本文介绍模板方法模式的概念及其应用。通过定义一个主方法并结合1...n个抽象或实际的方法,父类控制流程骨架,子类负责具体实现,提高代码复用性和扩展性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇详解 模板方法模式,首先我们要知道 概念是什么意思, 模板一词 说明 你要干什么大方向已经定好了,像我们高中写英语作文一样  有了模板文章,我们大方向 是抄模板文章的内容,但是为了避嫌 我们也会改一些语句,以证明我们是 自己写的,具体该真没地方要看个人的偏好了( 要看具体情况而定);

PS:

模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,
可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,
重写抽象方法,通过调用抽象类,实现对子类的调用,


代码实现如下:、

计算模板

package com.desionmodel.action.type01.templatemethod;

public abstract class AbstractCalculator {  
    
    /*主方法,实现对本类其它方法的调用*/  
    public final int calculate(String exp,String opt){  
        int array[] = split(exp,opt);  
        return calculate(array[0],array[1]);  
    }  
      
    /*被子类重写的方法*/  
    abstract public int calculate(int num1,int num2);  
      
    public int[] split(String exp,String opt){  
        String array[] = exp.split(opt);  
        int arrayInt[] = new int[2];  
        arrayInt[0] = Integer.parseInt(array[0]);  
        arrayInt[1] = Integer.parseInt(array[1]);  
        return arrayInt;  
    }  
}  


有的加法 有个减法,所以这算法地方具有灵动性,所以这个地方要设计成 抽象方法,让子类实现自己的算法

package com.desionmodel.action.type01.templatemethod;

public class Plus extends AbstractCalculator {  
  
    @Override  
    public int calculate(int num1,int num2) {  
        return num1 + num2;  
    }  

}


测试如下:

package com.desionmodel.action.type01.templatemethod;

public class Test {
	public static void main(String[] args) {  
        String exp = "8+8";  
        AbstractCalculator cal = new Plus();  
        int result = cal.calculate(exp, "\\+");  
        System.out.println(result);  
    }  
}

总而言之就是 公共的方法为实际方法,灵动的地方设计成 抽象方法,让子类自己去实现

提高了代码的重用性,并设定了规范!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值