抽象类的应用:模板方法的设计模式
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,
子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式;
作用:

  •  当功能内部一部分实现是确定的时候,一部分实现是不确定的,这时可以把不确定的部分保留出去,让子类去实现
    
  •  换句话说,在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤在父类中已经写好了。但是某些部分易变,易变部分可以抽象出来供不同的子类实现
    

例如:数据库访问的封装

  •  Junit单元测试
    
  •  JavaWeb中的Servlet中关于doGet/doPost方法调用
    
  •  Hibernate中模板程序
    
  •  Spring中JDBCTemlate、HibernateTemlate等
    
package com.atguigu.com;import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;public class TemplateTest {public static void main(String[] args) {SubTemplate t = new SubTemplate();t.spendTime();}
}//用来计算某段执行所需要花费的时间
abstract class Template{public void spendTime() {long start = System.currentTimeMillis();this.code(); //不确定的部分long end = System.currentTimeMillis();System.out.println("花费的时间为:" + (end - start));}public abstract void code() ;
}class SubTemplate extends Template{@Overridepublic void code() {// TODO Auto-generated method stubfor (int i = 2; i < 1000; i++) {boolean ifFlage = true;for (int j = 2; j < Math.sqrt(i); j++) {if (i % j == 0) {ifFlage = false;}}if (ifFlage) {System.out.println(i);}}}}

java中的模板方法设计模式相关推荐

  1. java 模板函数_重温Java中的模板方法设计模式

    Java 8 lambda表达式的简洁性为经典的GoF设计模式提供了新的视角.通过利用函数式编程,我们可以通过更少的耦合获得相同的好处 - 模板方法就是一个很好的例子. 经典的GoF模板方法实现 模板 ...

  2. Java中的模板方法模式

    模板方法模式是一种行为模式,建议在超类中更一般地定义算法. 该算法是在称为模板方法的方法中定义的. 子类仅定义更具体的算法步骤的实现. 使用这种设计模式的好处是,算法后面的任何更改只会影响超类中的代码 ...

  3. 第80节:Java中的MVC设计模式

    第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...

  4. Java中的策略设计模式

    策略设计模式是一种行为模式,其中我们有多种算法/策略来完成一项任务,所使用的算法/策略留给客户选择. 各种算法选项封装在单独的类中. 在本教程中,我们将学习在Java中实现策略设计模式. UML表示形 ...

  5. Java中的命令设计模式

    在本教程中,我们将学习命令模式,这是一种重要的行为设计模式. 它具有一些重要的应用程序,例如在文本编辑器中实现撤消/重做功能. 在命令设计模式中,有一个命令对象位于发送方和接收方对象之间. 发送者对象 ...

  6. Java中的状态设计模式–示例教程

    状态模式是行为设计模式之一 . 当对象根据其内部状态更改其行为时,将使用状态设计模式. 如果必须根据对象的状态更改其行为,则可以在对象中使用状态变量,并使用if-else条件块根据状态执行不同的操作. ...

  7. Java中的Memento设计模式-示例教程

    记忆模式是行为设计模式之一 . 当我们要保存对象的状态以便以后可以恢复时,可以使用Memento设计模式. 记忆模式用于以这种方式实现该目的,即在对象外部无法访问该对象的已保存状态数据,从而保护了已保 ...

  8. Java中的访问者设计模式–示例教程

    访客模式是行为设计模式之一 . 当我们必须对一组相似类型的对象执行操作时,将使用访问者模式. 借助访问者模式,我们可以将操作逻辑从对象移动到另一个类. 例如,假设有一个购物车,我们可以在其中添加不同类 ...

  9. Java中的策略设计模式-示例教程

    策略模式是行为设计模式之一 . 当我们对一个特定任务有多种算法,并且客户端决定在运行时使用的实际实现时,将使用策略模式. 策略模式也称为策略模式 . 我们定义了多种算法,并让客户端应用程序将算法用作参 ...

最新文章

  1. JQUERY动态生成当前年份的前5年以及后 2年
  2. Bash: Removing leading zeroes from a variable
  3. objc@interface的设计哲学与设计技巧
  4. 使用PORT对HOSTNAME执行DICOM Q / R操作的测试程序
  5. POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解...
  6. 数据仓库、商业智能的体系结构
  7. Mybatis SQL片段
  8. CentOS 修改主机名(host)
  9. mysql 存储过程发邮件_通过sql存储过程发送邮件的方法
  10. 计算机操作员有关大学专业,如何根据自身特长选大学专业,这样操作最简单直接!...
  11. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题
  12. 2.mongoDB 命令
  13. Spring Cloud之Zuul网关集群
  14. 企业网络信息安全意识宣贯——屏保制作
  15. 使用JRTPLIB收发RTP数据包
  16. linux cisco路由器,Linux用dynamic模拟cisco路由器
  17. 矩阵键盘焊接_如何更换和重新焊接机械键盘开关
  18. 【JS】阮一峰js教程总结
  19. 谈谈c语言程序如何变成可执行文件,C语言从代码变成可执行程序的步骤
  20. 手机屏幕取词翻译软件哪个比较好?快看这篇文章,它能告诉你

热门文章

  1. 【 C 】高级字符串查找之查找标记(token)函数 strtok介绍
  2. 简单的成绩录入系统程序及分析以及思考
  3. 信道编码之编码理论依据
  4. 算法笔记之分支限界法
  5. ubuntu下安装nginx时依赖库zlib,pcre,openssl安装方法
  6. (十二)Flask 学习 —— 换装
  7. in和exists的区别与执行效率问题解析
  8. 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词
  9. Oracle:sqlplus查询出的中文是乱码问题的解决
  10. C++实现求解最大公约数和最小公倍数