分享程序网
首页
  • java
微服务
微前端
环境搭建
数据库
设计模式
算法
软件
解决问题
链接
首页
  • java
微服务
微前端
环境搭建
数据库
设计模式
算法
软件
解决问题
链接
  • 创建模式

    • 单例模式
    • 工厂方法模式
    • 抽象工厂模式
    • 原型模式
    • 建造者模式
  • 结构模式

    • 适配器模式
    • 桥接模式
    • 组合模式
    • 装饰器模式
    • 门面模式
    • 享元模式
    • 代理模式
  • 行为模式

    • 责任链模式
    • 命令模式
    • 迭代器模式
    • 策略模式
    • 模板方法模式

模板方法模式

其定义如下: Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.(定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。)

实际上模板方式就是封装了一个流程,例如我们需要查询一些数据,数据先进行过滤,过滤完后将查询的结果进行排序,排序后输出,我们就可以这样写:

public abstract class AbstractTemplate {

	public final void handle(int[] datas) {
		//过滤
		filter(datas);
		//排序
		sort(datas);
		//打印
		console(datas);
	}

	private void console(int[] datas) {
		for (int i = 0; i < datas.length; i++) {
			System.out.println(i);
		}
	}

	protected abstract void sort(int[] datas);

	protected abstract void filter(int[] datas);
}

我们的子类继承该方法时,必须实现sort方法和filter方法,打印方法可以选择重写。但是handle的过程是不可以改变的,这就是模板方法模式。

Last Updated:
Contributors: clcheng
Prev
策略模式