Java设计模式-6-模板方法模式
来源:互联网 发布:医疗器械注册软件研究 编辑:程序博客网 时间:2024/05/20 18:54
一、介绍
定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。
二、UML类图
三、代码实现
模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印,打印功能好实现,排序就有点麻烦了。但是A有办法,先把打印功能完成,排序功能另找人做。
abstract class AbstractSort {/** * 将数组array由小到大排序 * * @param array */protected abstract void sort(int[] array);public void showSortResult(int[] array) {this.sort(array);System.out.print("排序结果:");for (int i = 0; i < array.length; i++) {System.out.printf("%4s", array[i]);}}}
class ConcreteSort extends AbstractSort {@Overrideprotected void sort(int[] array) {for (int i = 0; i < array.length - 1; i++) {selectSort(array, i);}}private void selectSort(int[] array, int index) {int MinValue = 32767; // 最小值变量int indexMin = 0; // 最小值索引变量int Temp; // 暂存变量for (int i = index; i < array.length; i++) {if (array[i] < MinValue) { // 找到最小值MinValue = array[i]; // 储存最小值indexMin = i;}}Temp = array[index]; // 交换两数值array[index] = array[indexMin];array[indexMin] = Temp;}}
测试类
public class Client { public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 预设数据数组public static void main(String[] args) {AbstractSort s = new ConcreteSort();s.showSortResult(a);}}
0 0
- Java设计模式-6-模板方法模式
- java设计模式---模板方法
- java模板方法设计模式
- Java 模板方法设计模式
- java设计模式-模板方法
- Java模板方法设计模式
- Java设计模式之模板方法模式
- Java模式设计之模板方法模式
- java设计模式之模板方法模式
- Java设计模式之模板方法模式
- java设计模式---模板方法模式
- java设计模式---模板方法模式
- JAVA-设计模式之模板方法模式
- Java--设计模式之模板方法模式
- java设计模式(9)---模板方法模式
- java设计模式--模板方法模式
- java设计模式-模板方法模式
- java设计模式之模板方法模式
- 【总结】 - OC内存管理(1)
- Java对象的浅层复制
- hadoop实战基础篇(一)
- Android中Parcelable的使用
- 新专题探索 构建最小linux运行系统
- Java设计模式-6-模板方法模式
- Python黑客学习笔记:从HelloWorld到编写PoC(上)
- WeakHashMap的一点理解
- 关于java连接mysql数据库
- android 简单方法连接服务器-------云服务Bmob
- hdu 1251 统计难题
- 机器学习之决策树学习
- 三种LVS负载均衡模式及LVS负载均衡的八种调度算法
- android:Spinner(下拉框)控件的使用