原来这就是Java中的模板设计模式,太Easy太实用了!

本文深入探讨了模板设计模式的应用,通过实例展示了如何使用继承和接口回调两种方式来减少代码重复,提高开发效率。

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

点击上方 "程序员小乐"关注, 星标或置顶一起成长

每天凌晨00点00分, 第一时间与你相约

每日英文

Try to hold the right hand with your left hand, and gave yourself most simple warmth. we should learn to get it by ourselves instead of craving for warmth from others.

试着用左手握住右手,给了自己最简单的温暖,不再奢求别人的给予,开始学着自己给自己。

每日掏心

人最大的幸福是有人可以依赖,但人最大的不幸则是过份依赖某个人。

来自:Mazin | 责编:乐乐

链接:my.oschina.net/u/3441184/blog/916670

程序员小乐(ID:study_tech)第 720 次推文   图片来自网络

往日回顾:面试官问我:new 一个对象的过程中发生了什么?我竟然回答不上来...

   正文   

顾名思义,模板设计模式就是将许多公用的常用的代码封装成一个模板,我们只需要实现不同的业务需求的代码,然后和模板组合在一起,那么就得到完整的逻辑。

在我们的日常开发中,常用的模板模式有两种实现方式:继承和接口回调,下面我们就分别使用这两种方式来实现模板设计模式。

假设一个场景,有一段代码如下所示:

public void doSomething(){
    固定代码片段
        
    业务相关代码

    固定代码片段
}

如果这段代码在很多地方要使用,并且固定代码比较多,业务相关代码比较少,且比较集中,那么如果我们每次实现一个业务都写下一个完整的流程,那么就会有很多重复代码,使用模板设计模式可以很好的解决这一问题。

是用继承的方式实现:创建一个模板类,将模板代码封装:

public abstract class Templet {  public void doTemplet(){    System.out.println("固定代码片段");        //业务逻辑代码    doSomething();        System.out.println("固定代码片段");  }    public abstract void doSomething();}

我们需要使用模板的类只需要继承这个模板类,并实现那个抽象方法,那么在调用doTemplet的时候,调用的业务逻辑代码自然就是我们那个子类中的实现了,这样就能实现不同的逻辑使用同一段代码了。

使用回调的方式实现,首先我们定义一个较为通用的接口:

public interface Callback<V,T> {
  public V doSomething(T t);
}

我们要使用模板的测试类:

public class Test {  public static void main(String[] args) {    useTemplet("业务逻辑",new Callback<String, String>() {      @Override      public String doSomething(String t) {        return t;      }    });  }    public static void useTemplet(String str,Callback<String,String> callback){    System.out.println("固定代码");        String result = callback.doSomething(str);        System.out.println(result );        System.out.println("固定代码");  }}

这样如果还有其他的代码需要复用模板,那么直接调用useTemplet就可以了。

模板设计模式在框架的设计中使用比较多,例如springmvc的view就是一个典型的模板设计模式。

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

欢迎各位读者加入程序员小乐技术群,在公众号后台回复“加群”或者“学习”即可。

猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

深入分析 Session 和 Cookie,看这篇就对了!

动画演绎Java常用数据结构(建议收藏)

漫谈Serverless、微服务、分布式和单体四种主流软件架构

关注「程序员小乐」,收看更多精彩内容

嘿,你在看吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值