本文主要是介绍三分钟了解JAVA设计模式之模板方法模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
场景:在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单。在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同
下面通过计算器这一案例代码实现模板方法模式的使用,将‘计算’这一动作当作是一个模板动作,而计算是加法还是减法则需要我们定义的子类去重写父类中的方法来实现加法还是减法。
代码:
publicabstractclass AbstractCalculator {
/*主方法,实现对本类其它方法的调用*/
publicfinalint calculate(String exp,String opt){
int array[] = split(exp,opt);
return calculate(array[0],array[1]);
}
/*被子类重写的方法*/
abstractpublicint calculate(int num1,int num2);
publicint[] split(String exp,String opt){
String array[] = exp.split(opt);
int arrayInt[] = newint[2];
arrayInt[0] = Integer.parseInt(array[0]);
arrayInt[1] = Integer.parseInt(array[1]);
return arrayInt;
}
}
publicclass Plus extends AbstractCalculator {
@Override
publicint calculate(int num1,int num2) {
return num1 + num2;
}
}
public class StrategyTest {
publicstaticvoid main(String[] args) {
String exp = "8+8";
AbstractCalculator cal = new Plus();
int result = cal.calculate(exp, "\\+");
System.out.println(result);
}
}
总结:
模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。
模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。模板方法模式提供了一个模板方法来定义算法框架,而某些具体步骤的实现可以在其子类中完成。
这篇关于三分钟了解JAVA设计模式之模板方法模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!