模板模式是一种很好的复用代码与保留代码的灵活性的方式
这是一个让人印象深刻的模式,很适合固定流程的业务,例如工作流
模板模式:
模板模式没有细分,
其实模板模式是从自然界,现实生活中抽象而来,我们可以依照现实中的例子,来构建脑海中的 抽象概念:
模板模式: 类比于 例如: 古时的活字印刷术, 现在的简历等
模板模式
模板模式 致力于将代码中 重复与通用的业务逻辑抽象出来,形成一个更加抽象的类or类型
模板模式在 java中 就是定义好 固定业务流程 也就是 if -else 的抽象类
ps: 此处是固定业务流程而非 已经固定好每一步业务顺序
从java的角度上来说 就是定义一套业务模板,然后留下几个钩子方法然后让子类实现的时候可以重写,且作为承载模板的类一般都是抽象类
这种模式常常用于业务流程固定,但是每次都会有5处以下的小不同点的时候可以直接使用模板模式,如果再复杂那就需要拆分了
public abstract class A<T>{
public T business(){
boolean flag = business1();
T t=null;
if(flag){
t = business2();
}else{
t = business3();
}
}
public abstract boolean business1();
public abstract T business2();
public abstract T business3();
}
// 调用
public class B extends A<C>{
// 给一个调用入口
public C business(){
super.business();
}
public abstract boolean business1(){
System.out.print("我是 bug")
};
public abstract C business2(){};
public abstract C business3(){};
}
以上代码中 三个 abstract 函数就是钩子方法了 , 有钩子方法1 返回的值可以干涉到后面的逻辑,
但是无论如何在 abstract A 类中的 business 主流程是不会变动的