返回顶部
首页 > 资讯 > 精选 >Java模板方法的使用方式有哪些
  • 792
分享到

Java模板方法的使用方式有哪些

2023-07-05 05:07:50 792人浏览 独家记忆
摘要

这篇文章主要介绍了Java模板方法的使用方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java模板方法的使用方式有哪些文章都会有所收获,下面我们一起来看看吧。为什么我会想到使用模板方法呢?在日常开发中

这篇文章主要介绍了Java模板方法的使用方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java模板方法的使用方式有哪些文章都会有所收获,下面我们一起来看看吧。

为什么我会想到使用模板方法呢?

在日常开发中,我们经常需要使用编程事务来解决一些实在的业务问题。以Hibernate框架为例(其实对于ORM框架来说,都大同小异。我们公司使用的是Hiberante,所以这里就以Hibernate为例了),我们实现一个编程式事务如下:

SessionFactory sessionFactory = (SessionFactory) applicationContext.getBean("sessionFactory");Session session = sessionFactory.openSession();try {    session.beginTransaction();    String sql = "update table set A = :a where id = :id";    session.createNativeQuery(sql)            .setParameter("a", "a")            .setParameter("id", id)            .executeUpdate();    session.getTransaction().commit();} catch (Exception e) {    session.getTransaction().rollback();} finally {    session.close();}

我们看上述的代码是不是有一种很乱的感觉,还要自己去写try{}catch{}finally{}。而且当我们代码中有很多地方都应用了编程式事务的话,那么我们的代码会显得有些臃肿。尤其对于我这种强迫症患者来说,哈哈!!

既然如此,我们肯定要想一种方式去优化一下,至少让它看起来更优美一些。我这里选择使用模板方法来改造一下。

什么是模板方法设计模式?

模板方法说白了就是将一段代码模板化,将通用的代码段抽取出来,并提供一些自定义的接口去定制的特定位置的某些业务功能。

根据我的理解,模板方法的核心思想就是 重写 。我们在模板中的指定位置提供一个外部可编辑的接口,让调用者可以根据需求去随意重写这个接口来达到他的目的。

其实在spring中也广泛使用的模板方法,当我们学习Spring源码的时候会发现,实际上Bean的生命周期中就使用了模板方法。我们可以根据自己的需求在Bean生命周期的各个阶段去做一些事情。

代码优化

首先我们先维护一个抽象的模板类,这个类里包含了三个公开的方法,用来提供为调用者去定制使用。

public abstract class TransactionManagerTemplate {        public void handle() {}        public void exceptionHandle() {}        public void finallyHandle() {}}

然后我们创建一个事务管理器,封装一个runTransaction方法,里面就包含了上面那边不忍直视的代码。然后我们将Session和抽象的模板类作为参数传入

并且将抽象的模板类中的三个公开方法填入到try{}catch{}finally{}中的各个位置。

@Componentpublic class TransactionManager {    @Autowired    private ApplicationContext applicationContext;        public static final String DEFAULT_SESSION_FACTORY = "sessionFactory";        public void runTransaction(Session session, TransactionManagerTemplate transactionManagerTemplate) {        try {            session.beginTransaction();            transactionManagerTemplate.handle();            session.getTransaction().commit();        } catch (Exception e) {            transactionManagerTemplate.exceptionHandle();            session.getTransaction().rollback();        } finally {            transactionManagerTemplate.finallyHandle();            session.close();        }    }        public SessionFactory getSessionFactory() {        return getSessionFactory(DEFAULT_SESSION_FACTORY);    }        public SessionFactory getSessionFactory(String beanName) {        SessionFactory sessionFactory = (SessionFactory) applicationContext.getBean(beanName);        if(sessionFactory == null) {            throw new BAPException("不存在BeanName为【{}】的SessionFactory", beanName);        }        return sessionFactory;    }        public Session getSession() {        return getSessionFactory(DEFAULT_SESSION_FACTORY).openSession();    }        public Session getSession(String sessionFactoryBeanName) {        return getSessionFactory(sessionFactoryBeanName).openSession();    }}

我们在业务代码中想要再次使用编程式事务时,就可以通过如下方式调用:

Session session = transactionManager.getSession();transactionManager.runTransaction(session, new TransactionManagerTemplate() {    @Override    public void handle() {        // try中要添加的业务逻辑    }    @Override    public void exceptionHandle() {        // catch中要添加的业务逻辑    }    @Override    public void finallyHandle() {        // finally中要添加的业务逻辑    }});

关于“Java模板方法的使用方式有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java模板方法的使用方式有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java模板方法的使用方式有哪些

本文链接: https://lsjlt.com/news/349821.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java模板方法的使用方式有哪些
    这篇文章主要介绍了Java模板方法的使用方式有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java模板方法的使用方式有哪些文章都会有所收获,下面我们一起来看看吧。为什么我会想到使用模板方法呢?在日常开发中...
    99+
    2023-07-05
  • 浅析Java模板方法的一种使用方式
    为什么我会想到使用模板方法呢? 在日常开发中,我们经常需要使用编程式事务来解决一些实在的业务问题。以Hibernate框架为例(其实对于ORM框架来说,都大同小异。我们公司使用的是H...
    99+
    2023-02-23
    Java模板方法使用方式 Java模板方法使用 Java模板方法
  • Java中模版方法模式的作用有哪些
    Java中模版方法模式的作用有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算...
    99+
    2023-05-31
    java 模版方法模式
  • Java设计模式-模板方法模式
    定义Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subcl...
    99+
    2023-06-05
  • 怎么Java项目中使用模板方法模式
    本篇文章为大家展示了怎么Java项目中使用模板方法模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。模拟抽象类:public abstract class Temple...
    99+
    2023-05-31
    java ava 模板方法模式
  • Java设计模式之模板方法模式
    在我们实际开发中,如果一个方法极其复杂时,如果我们将所有的逻辑写在一个方法中,那维护起来就很困难,要替换某些步骤时都要重新写,这样代码的扩展性就很差,当遇到这种情况就要考虑今天的主角...
    99+
    2022-11-13
    Java 设计模式 模板方法模式
  • 模板方法模式
    http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.htmlhttp://www.importnew.com/15546.html...
    99+
    2023-06-03
  • Java的使用方法有哪些
    本篇内容介绍了“Java的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现equals()class Person...
    99+
    2023-06-17
  • Java设计模式之java模板方法模式详解
    目录模板方法模式介绍角色代码演示模板方法模式总结优点缺点适用场景源码分析模板方法模式的典型应用Servlet 中的模板方法模式Hello World!Spring中的IOC容器启动—...
    99+
    2024-04-02
  • java构造方法的调用方式有哪些
    Java构造方法的调用方式有以下几种:1. 通过new关键字调用:使用new关键字创建对象时,会自动调用该类的构造方法。```MyC...
    99+
    2023-09-01
    java
  • PHP中如何使用模板方法模式?
    模板方法模式定义了算法的骨架,具体步骤由子类实现,使子类可自定义具体步骤而无需改变整体结构。此模式用于:1. 定义算法的骨架。2. 将算法的具体行为延迟到子类。3. 允许子类自定义算法的...
    99+
    2024-05-21
    php 模板方法
  • apicloud模块的使用方法有哪些
    APICloud模块的使用方法有以下几种:1. 引入模块:使用`api.require(moduleName)`方法引入需要的模块,...
    99+
    2023-08-23
    apicloud
  • java锁的使用方法有哪些
    Java中常用的锁的使用方法有以下几种: synchronized关键字:使用synchronized关键字修饰的方法或代码块可...
    99+
    2023-10-28
    java
  • Java设计模式之浅谈模板方法模式
    一. 什么是模板方法设计模式 从字面意义上理解, 模板方法就是定义出来一套方法, 作为模板, 也就是基础。 在这个基础上, 我们可以进行加工,实现个性化的实现。比如:一日餐三. 早餐...
    99+
    2024-04-02
  • Java设计模式之模板方法模式详解
    目录模板方法模式模板方法模式的优缺点使用场景总结模板方法模式 模板方法模式法(Template Method)定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不...
    99+
    2024-04-02
  • 怎么理解Java设计模式的模板方法模式
    这篇文章主要讲解了“怎么理解Java设计模式的模板方法模式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Java设计模式的模板方法模式”吧!一、什么是模板方法模式模板方法模式在一个方...
    99+
    2023-06-25
  • Java模板方法模式定义算法框架
    目录介绍实现总结介绍 ​ Java中的模板方法模式是一种行为设计模式,用于定义算法的框架并允许子类重写某些步骤,同时不改变算法的结构. ​ 该模式基于开放/关闭原则,即对扩展开放,对...
    99+
    2023-05-18
    Java模板方法模式 Java设计模式
  • 如何使用JavaScript实现模板方法模式
    模板方法模式是一种行为设计模式,它是指将一个算法的骨架定义在一个操作中,将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。在本文中,我们将介绍如何使用 JavaScript 实现模板方法模式。实...
    99+
    2023-05-14
  • Java设计模式之模板方法详解
    目录概念核心设计要点优缺点应用场景模板方法和策略模式的区别代码案例概念 模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术,没有关联关系。因此,在模板方法...
    99+
    2024-04-02
  • Java设计模式之模板方法模式TemplateMethodPattern详解
    目录概述模板方法模板方法模式好莱坞原则好莱坞原则与依赖倒置原则真实案例模板方法模式的注意事项和细节概述 模板方法 模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。那...
    99+
    2022-11-13
    Java模板方法模式 Java Template Method Pattern
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作