zoukankan      html  css  js  c++  java
  • 模板方法模式

    计模式:模板方法模式(Template Method)

    模板方法模式需要开发抽象类和具体子类之间的协作。抽象类负责给出一个算法的轮廓和骨架,子类则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本方法汇总起来的方法叫做模板方法(template method)。子类重写抽象类中的抽象方法,通过调用抽象类中的模板方法中的抽象方法,实现对子类基本方法的调用。

    直接来看一个例子:

    1.定义一个抽象类,及类中的模板方法和抽象方法:

    复制代码
     1 abstract class AbstractCalculator {
     2 
     3     // 主方法,实现对本类其它方法的调用
     4     public final int getResult(String exp, String opt) {
     5         int array[] = split(exp, opt);
     6         return calculate(array[0], array[1]);
     7     }
     8 
     9     public int[] split(String exp, String opt) {
    10         String array[] = exp.split(opt);
    11         int arrayInt[] = new int[2];
    12         arrayInt[0] = Integer.parseInt(array[0]);
    13         arrayInt[1] = Integer.parseInt(array[1]);
    14         return arrayInt;
    15     }
    16 
    17     // 被子类重写的方法
    18     abstract public int calculate(int num1, int num2);
    19 }
    复制代码

    2.定义子类:

    复制代码
    1 class Plus extends AbstractCalculator {  
    2       
    3     @Override  
    4     public int calculate(int num1,int num2) {  
    5         return num1 + num2;  
    6     }  
    7 }  
    复制代码

    3.测试:

    复制代码
    1 public class TemplateMethodTest {
    2 
    3     public static void main(String[] args) {
    4         String exp = "5+8";
    5         AbstractCalculator cal = new Plus();
    6         int result = cal.getResult(exp, "\+");
    7         System.out.println(result);
    8     }
    9 }
    复制代码
  • 相关阅读:
    c++ 函数
    c++ 数字
    c++语句(判断)
    十九、夜间模式的开启与关闭,父模板的制作
    二十、开始Flask项目
    十八、完成登录与注册页面的前端
    十七、JavaScript 基础,登录前端验证
    CSS实例:图片导航块
    十五、导航,头部,CSS基础
    十四、web基础,用html元素制作web页面
  • 原文地址:https://www.cnblogs.com/hanlong/p/4782778.html
Copyright © 2011-2022 走看看