• java实现23种设计模式之模版方法模式


    先看代码:

    package com.ceshi13;
    
    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 num1,int num2);
        
        public int[] split(String exp,String opt){
            String array[] = exp.split(opt);
            int arrayInt[] = new int[2];
            arrayInt[0] = Integer.parseInt(array[0]);
            arrayInt[1] = Integer.parseInt(array[1]);
            return arrayInt;
        }
    }
    package com.ceshi13;
    
    public class Plus extends AbstractCalculator {
    
        @Override
        public int calculate(int num1, int num2) {
            return num1 + num2;
        }
    }
    package com.ceshi13;
    
    public class StrategyTest {
    
        public static void main(String[] args) {
            String exp = "8+8";
            AbstractCalculator cal = new Plus();
            int result = cal.calculate(exp, "\+");
            System.out.println(result);
        }
    }

    运算结果:

    上面抽象类的代码中有calculate方法,是可以通过不同的子类继承并且重写的,这就相当于模版

    定义了模版,至于具体是怎么子的通过子类实现

  • 相关阅读:
    ST表学习笔记
    LCA学习笔记
    $ZOJ 2432 Greatest Common Increasing Subsequence$
    $SP15637 GNYR04H - Mr Youngs Picture Permutations$
    Noip2016换教室
    洛谷4718【模板】Pollard-Rho算法
    CQOI2016 密钥破解
    Poj3696 The Lukiest Number
    Noip2012同余方程
    同余
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10755990.html
Copyright © 2020-2023  润新知