java模板方法设计模式(含小实例)

学习过程中的自己总结的一些知识点分享

应用知识点 继承 抽象

目录

前言

一、模板方法是什么?

二、模板方法模式解决了什么问题?

三、使用步骤

四、实例写作文案例

五、模板代码:

运行结果

注意:建议模板方法使用final关键字修饰,这样不能被子类重写

六、总结


一、模板方法是什么?

        模板方法就是当系统中出现同一个功能多处在开发,而该功能中大部分代码是一样的,只有其中部分可能不同的时候使用的一种抽象方法

二、模板方法模式解决了什么问题?

        模板方法已经定义了通用结构,模板方法不能确定的部分定义成抽象方法,交给子类实现,因此,使用者只需要关心自己需要实现的功能即可。

三、使用步骤

  1. 定义一个抽象类
  2. 定义两个方法:一个是模板方法存放相同代码部分,一个是抽象方法具体的方法交给子类实现
  3. 子类继承抽象类,重写抽象方法

 

四、实例写作文案例

  1. 现在有两类学生,一类是中学生,一类是小学生,他们都要写一篇作文。
  2. 要求每种类型的学生,标题第一段和最后一段,内容必须一样。正文部分自己发挥。
  3. 请选择最优的面向对象方案进行设计
  4. 分析:


五、模板代码:

代码目录:

 学生父类:

public abstract class Student {
    public final void writeEssay(){
    	//作文上半部分
        System.out.println("标题");
        System.out.println("开头");
        //利用抽象方法让子类分别实现不同的正文内容
        writeMain();
        //作文下半部分
        System.out.println("结尾");

    }
    //抽象方法
    public abstract void writeMain();
}

中学生子类:

public class MiddleStudent extends Student{
	//重写声明
    @Override
    public void writeMain() {

        System.out.println("中学生作文内容");
    }
}

小学生子类:

public class litteStudent extends Student{

    @Override
    public void writeMain() {
        System.out.println("小学生");
    }

在此处运行:

public  class Dome {
    public static void main(String[] args) {
        //new出一个小学生对象
        litteStudent ls=new litteStudent();
        //调用方法
        ls.writeEssay();
        System.out.println("========");
        //new出一个中学生对象
        MiddleStudent ms=new MiddleStudent();
        //调用方法
        ms.writeEssay();
    }

}

运行结果

标题
开头
小学生
结尾
========
标题
开头
中学生
结尾
 

注意:建议模板方法使用final关键字修饰,这样不能被子类重写

六、总结

    模板方法已经定义了通用结构,模板方法不能确定的部分定义成抽象方法,交给子类实现,因此,使用者只需要关心自己需要实现的功能即可。模板方法大大提高了代码的复用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值