[译]Java 设计模式 之模板方法
2015-01-10 13:03
369 查看
(文章翻译自Java Design Pattern: Template Method)
模板方法设计模式定义了归档特定操作的工作流。它允许子类去修改特定的步奏而不用改变工作流的结构。
下面的例子表示模板方法模式是怎么工作的。
类图
Java 代码
Vehicle:java定义了一个小型车并且使其可以运作。
Car:Vehicle的子类,并且定义了具体的方法。
Truck:Vehicle 的子类并且定义了具体的实现方法。
testVehicle 方法只接受一个Vehicle,它不在乎是一个car还是一个truck,因为他们是以相同的方式运作的。下面就是针对这个接口的例子。
模板设计模式的实际应用
这个模式用用Spring框架的数据访问对象中(DAO).org.springframework.jdbc.core.JdbcTemplate类有所有和JDBC工作流相同的重复代码块,比如update、query、execute等等。
模板方法设计模式定义了归档特定操作的工作流。它允许子类去修改特定的步奏而不用改变工作流的结构。
下面的例子表示模板方法模式是怎么工作的。
类图
Java 代码
Vehicle:java定义了一个小型车并且使其可以运作。
package com.programcreek.designpatterns.templatemethod; abstract public class Vehicle { //set to protected so that subclass can access protected boolean status; abstract void start(); abstract void run(); abstract void stop(); public void testYourVehicle(){ start(); if(this.status){ run(); stop(); } } }
Car:Vehicle的子类,并且定义了具体的方法。
package com.programcreek.designpatterns.templatemethod; public class Car extends Vehicle { @Override void start() { this.status = true; } @Override void run() { System.out.println("Run fast!"); } @Override void stop() { System.out.println("Car stop!"); } }
Truck:Vehicle 的子类并且定义了具体的实现方法。
package com.programcreek.designpatterns.templatemethod; public class Truck extends Vehicle { @Override void start() { this.status = true; } @Override void run() { System.out.println("Run slowly!"); } @Override void stop() { System.out.println("Truck stop!"); } }
testVehicle 方法只接受一个Vehicle,它不在乎是一个car还是一个truck,因为他们是以相同的方式运作的。下面就是针对这个接口的例子。
import com.programcreek.designpatterns.templatemethod.Car; import com.programcreek.designpatterns.templatemethod.Truck; import com.programcreek.designpatterns.templatemethod.Vehicle; 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(); } }
模板设计模式的实际应用
这个模式用用Spring框架的数据访问对象中(DAO).org.springframework.jdbc.core.JdbcTemplate类有所有和JDBC工作流相同的重复代码块,比如update、query、execute等等。
相关文章推荐
- java 设计模式 学习笔记(9) 模板方法模式
- java_23种设计模式之模板方法模式
- java设计模式之模板方法模式
- 《Java基础学习笔记》JAVA设计模式之模板方法
- Java设计模式透析之 —— 模板方法(Template Method)
- Java设计模式—模板方法(Template Method)
- java设计模式之模板方法
- java设计模式---模板方法模式
- Java设计模式透析之 —— 模板方法(Template Method)
- Java设计模式之模板方法
- Java设计模式 Design Pattern:模板方法 Template Method
- Java设计模式 Design Pattern:模板方法 Template Method
- java(2) 设计模式-模板方法设计模式
- java设计模式---模板方法模式
- 深入浅出Java模式设计之模板方法模式
- JAVA设计模式——模板方法模式
- Java设计模式七:模板方法(Template Method)
- java设计模式---Template Method模板方法---实际处理交给子类
- java设计模式---模板方法模式
- Java设计模式之模板方法