定义一个操作中的算法框架,将一些步骤延迟到子类中,使子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
子类重写或实现父类的方法。再由父类的模板方法调用这些公共的方法。所以被子类重写或者不必暴露的方法一般定义为私有的。
GitHub
定义抽象模板类
public abstract class AbstractTemplate { protected abstract void method1(); protected abstract void method2(); public void method(){ this.method1(); this.method2(); }}
定义子类实现
public class ConcreteTemplate1 extends AbstractTemplate { @Override protected void method1() { System.out.println("模板1业务逻辑方法1");} @Override protected void method2() { System.out.println("模板1业务逻辑方法2"); }}public class ConcreteTemplate2 extends AbstractTemplate { @Override protected void method1() { System.out.println("模板2业务逻辑方法1"); } @Override protected void method2() { System.out.println("模板2业务逻辑方法2"); }}
测试类
public static void main(String[] args){ AbstractTemplate template1 = new ConcreteTemplate1(); AbstractTemplate template2 = new ConcreteTemplate2(); template1.method(); System.out.println("-----------------"); template2.method();}
模板1业务逻辑方法1模板1业务逻辑方法2-----------------模板2业务逻辑方法1模板2业务逻辑方法2
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有