美文网首页
模板方法模式-Template Method

模板方法模式-Template Method

作者: Josaber | 来源:发表于2016-12-21 23:13 被阅读0次

模板方法模式是指:一个抽象类中,有一个主方法(一般为final),再定义其他抽象的或是具体的方法,由主方法来调用这些方法,然后定义其子类,重写其抽象方法,通过调用抽象类,实现对子类的调用

  • 定义一个抽象的计算器类
public abstract class AbstractCalculator {  
      
    public final int calculate(String exp,String opt){  
        int array[] = split(exp,opt);  
        return calculate(array[0],array[1]);  
    }  
      
    abstract public int calculate(int a,int b);  

    public int[] split(String exp,String splitor){  
        String array[] = exp.split(splitor);  
        if(array.length != 2)
            throw new RuntimeException("error");

        int arrayInt[] = new int[2];  
        arrayInt[0] = Integer.parseInt(array[0]);  
        arrayInt[1] = Integer.parseInt(array[1]);  
        return arrayInt;  
    }  
}
  • 定义加法类
public class Plus extends AbstractCalculator {  
  
    @Override  
    public int calculate(int a,int b) {  
        return a + b;  
    }  
}
  • 定义减法类
public class Minus extends AbstractCalculator {  
  
    @Override  
    public int calculate(int a, int b) {  
        return a - b;  
    }  
}
  • 测试
public class Main {  
  
    public static void main(String[] args) {  
        String exp = "8+8";  
        AbstractCalculator cal = new Plus();  
        int result = cal.calculate(exp, "\\+");  
        System.out.println(result);

        exp = "8-8";
        cal = new Minus();  
        result = cal.calculate(exp, "-");  
        System.out.println(result);  
    }  
}

程序执行结果:

16
0

模板方法即是:在类本身无法实现或者各子类有不同的实现方式时,将方法抽象化暴露给子类去实现。

详细代码戳这里

相关文章

网友评论

      本文标题:模板方法模式-Template Method

      本文链接:https://www.haomeiwen.com/subject/zjlcvttx.html