模板方法设计模式

模板方法设计模式优势

解决方法中存在重复代码的问题

模板方法设计格式

1.定义一个抽象类

2.在里边定义两个方法,一个是模板方法,放在相同的代码里,一个是抽象方法;具体实现交给子类完成

3.模板方法建议使用final 关键字修饰,防止方法被修改

定义的抽象类

java 复制代码
//抽象类
public abstract class TestAbstract {

    //姓名
    public abstract void name();
    //班级
    public abstract void classAndGrade();




    //行为
    public final void behavior(){
        System.out.println("我是光明小学学生");
        name();
        classAndGrade();
        System.out.println("我是我爱我的学校");
    }

子类继承抽象类

java 复制代码
public class TestAbstract1 extends TestAbstract{
    @Override
    public void name() {
        System.out.println("我叫张三");
    }

    @Override
    public void classAndGrade() {
        System.out.println("我是三年级二班");
    }
}

方法执行的是父类封装好的模板方法

java 复制代码
        TestAbstract1 testAbstract1 = new TestAbstract1();
        testAbstract1.behavior();

运行效果

相关推荐
sheji34161 小时前
【开题答辩全过程】以 家庭教育资源网为例,包含答辩的问题和答案
java
百***78751 小时前
Grok-4.1与GPT-5.2深度对比:技术差异、适用场景及Python集成指南
java·python·gpt
Mr -老鬼2 小时前
Java VS Rust
java·开发语言·rust
摘星编程2 小时前
React Native for OpenHarmony 实战:DatePickerAndroid 日期选择器详解
android·react native·react.js
北凉军2 小时前
java连接达梦数据库,用户名是其他库的名称无法指定库,所有mapper查询的都是以用户名相同的库内的表
java·开发语言·数据库
程序员张32 小时前
Mybatis条件判断某属性是否等于指定字符串
java·spring boot·mybatis
wuk9982 小时前
基于C#与三菱PLC通过TCPIP实现MC协议通信示例
java·网络·c#
沛沛老爹2 小时前
Web转AI架构篇 Agent Skills vs MCP:工具箱与标准接口的本质区别
java·开发语言·前端·人工智能·架构·企业开发
码农小卡拉2 小时前
Maven与Gradle选型指南:如何匹配项目的依赖管理需求
java·gradle·maven