模板方法设计模式定义了达到特定操作的工作流程。它允许子类不改变工作流程的结构去修改某些步骤。
下面的例子展示了模板方法模式是怎样运作的。
1、类图
2、Java代码
Vehicle.java定义了一个vehicle和它怎么样运作。
package com.leon.templatemethod; public abstract class Vehicle { // 设置成protected,这样子类可以访问。 protected boolean status; abstract void start(); abstract void run(); abstract void stop(); public void testYourVehicle() { start(); if (this.status) { run(); stop(); } } }
Car.java 是Vehicle的子类以及定义了具体的方法
package com.leon.templatemethod; public class Car extends Vehicle { @Override void start() { // TODO Auto-generated method stub this.status = true; } @Override void run() { // TODO Auto-generated method stub System.out.println("加速跑!"); } @Override void stop() { // TODO Auto-generated method stub System.out.println("轿车,熄火!"); } }
Truck.java 是Vehicle的子类以及定义了具体的方法
package com.leon.templatemethod; public class Truck extends Vehicle { @Override void start() { // TODO Auto-generated method stub this.status = true; } @Override void run() { // TODO Auto-generated method stub System.out.println("慢慢跑!"); } @Override void stop() { // TODO Auto-generated method stub System.out.println("卡车,熄火"); } }
testVehicle方法只能传入Vehicle对象,它不关系传入的是轿车还是卡车,因为他们以相同的方式运作。这是一个程序接口的例子。
package com.leon.templatemethod; public class Main { public static void main(String[] args) { Car car = new Car(); testVehicle(car); Truck truck = new Truck(); testVehicle(truck); } public static void testVehicle(Vehicle v) { v.testYourVehicle(); } }
3、实际应用
模板方法模式应用在 Spring framework's Data Access Object(DAO)。
org.springframework.jdbc.core.JdbcTemplate类有与JDBC有关系的所有常见的重复代码块,例如,更新,查询,执行等等。
原文地址:点击这里
相关推荐
《设计模式:可复用面向对象软件的基础》是一本经典的软件工程著作,它详细阐述了在面向对象编程中,如何通过使用预定义的解决方案模板来解决常见问题,从而提高代码的可读性、可维护性和复用性。设计模式是经验丰富...
本教程旨在深入讲解设计模式的基本原理和应用方法,帮助开发者构建更加健壮和灵活的软件系统。 首先,我们要理解什么是设计模式。设计模式并非具体的代码或库,而是一种描述在特定环境下如何设计和实现软件组件的...
### 设计模式:可复用面向对象软件的基础 #### 书籍概述 《设计模式:可复用面向对象软件的基础》是一本由Erich Gamma、Richard Helm等四位国际知名的软件工程师共同编写的经典之作,该书提供了面向对象软件设计中...
设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从一开始就采用的设计方案。它们反映了不为人知的重新设计和重新编码的成果,而这些都来自软件开发者为了设计出灵活可复用的软件而长时间进行的...
《设计模式:可复用面向对象软件的基础》一书介绍了23种经典的设计模式,这些模式大致可以分为三大类: 1. **创建型模式**:专注于对象的创建机制,确保系统在合适的时机创建正确的对象。 - **单例模式**...
设计模式是指在面向对象软件开发中,针对特定问题而设计的解决方案模板,它们是经过时间检验的最佳实践,可以帮助开发者构建灵活、易维护且可复用的软件系统。掌握设计模式对游戏引擎的开发尤其重要,因为游戏引擎...
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。这些模式通过前人的经验总结,为开发人员提供了一种标准化的解决方案,使得代码更易于理解、扩展和维护。本资源《设计模式:可...
模板方法模式是面向对象设计模式中的行为模式之一,它在Java等面向对象编程语言中有着广泛的应用。模板方法模式的主要思想是在一个抽象类中定义一个算法的骨架,而将一些步骤延迟到子类中实现。这样,子类可以重写...
总的来说,《设计模式:可复用面向对象软件的基础》是一本深入理解和应用面向对象设计的必备书籍,它不仅介绍了23种核心设计模式,还提供了大量实例和解释,帮助读者将理论知识转化为实际的编程技巧。通过对这本书的...
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
7. **模板方法**:模板方法模式是一种行为设计模式,定义了操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 8. **代理**:代理模式为其他对象提供...
模板方法模式是设计模式中的一种行为模式,它在软件工程中扮演着重要的角色,尤其是在创建算法族时。这种模式允许我们在抽象类中定义一个算法的框架,而将具体步骤延迟到子类中实现,从而实现了代码复用和扩展。下面...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
《设计模式:基于C#的工程化实现及扩展》是一份深入探讨软件设计模式的宝贵资源,它提供了C#语言下的具体实现与扩展,旨在帮助开发者提升代码的可读性、可维护性和可复用性。这个压缩包包含了多个源码文件,分别命名...
13. 模板方法模式:模板方法模式定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 14. 观察者模式:观察者模式定义了对象之间的一对多依赖...
10. 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 这些设计模式在实际开发中有着广泛的应用,比如在大型企业级应用、...
在《设计模式:可复用面向对象软件的基础》一书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(通常被称为GoF,Gang of Four)详细阐述了23种经典的设计模式。这些模式分为三类:创建型模式、...