zoukankan      html  css  js  c++  java
  • 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方法,是可以通过不同的子类继承并且重写的,这就相当于模版

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

  • 相关阅读:
    Git的使用
    Flask(五)
    Flask(四)
    Flask(二)
    Flask(一)
    SDL 五子棋游戏
    c++单例模式
    ubuntu安装虚拟机
    git 命令
    汇编x86入门
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10755990.html
Copyright © 2011-2022 走看看