您现在的位置是:首页 > Java 当前栏目 【Java】——模板方法 JAVA 算法 测试 抽象 2023-03-02 11:02:03 时间 # 前言 # 最近看DRP视频时,视频中提到了模板方法,这个模式之前也学习过,现在总结一下! # # # 概念 # 定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法结构即可重定义该算法的某些特定步骤。 # UML图 # ![Center][] # 代码实现 # 抽象类 package com.bjpowernode.pattern; public abstract class AbstractClass { public static final String METHOD_1 = "m1"; public static final String METHOD_2 ="m2"; public final void templateMethod(String methodName){ if(METHOD_1.equals(methodName)){ doOperation1(methodName); } if(METHOD_2.equals(methodName)){ doOperation2(methodName); } } protected abstract void doOperation1(String methodName); protected abstract void doOperation2(String methodName); } 具体类 package com.bjpowernode.pattern; public class ConcreteClass extends AbstractClass { @Override protected void doOperation1(String methodName) { System.out.println("ConcreteClass-->>doOperation1()" + methodName); } @Override protected void doOperation2(String methodName) { System.out.println("ConcreteClass-->>doOperation2()" + methodName); } } 测试 package com.bjpowernode.pattern; public class Test { /** * @param args */ public static void main(String[] args) { AbstractClass a = new ConcreteClass(); a.templateMethod(AbstractClass.METHOD_1); //a.templateMethod(AbstractClass.METHOD_2); } } 执行测试类结果 ![Center 1][] [Center]: /images/20220615/9a477ea2e67242878cfc5c41eee38495.png [Center 1]: /images/20220615/e34afbb88da3483e96ef5e01e98ddbe1.png 本文地址: 【Java】——模板方法 相关文章 java--Map集合 Java数组类型