编程模式之模板方法模式(Template Method)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程模式之模板方法模式(Template Method)相关的知识,希望对你有一定的参考价值。
模板方法模式由两个角色组成:父类角色,子类角色。
父类角色:提供模板。
子类角色:为父类模板提供实现。
类图:
JAVA代码:
AbstractClass.java
package com.templatemethod; public abstract class AbstractClass { /** * 定义了算法的骨架,即步骤 */ public void template() { this.method1(); this.method2(); this.method3(); } /** * 子类可以重写这些方法 */ public abstract void method1(); public abstract void method2(); public abstract void method3(); }
ConcreteClass.java
package com.templatemethod; public class ConcreteClass extends AbstractClass { @Override public void method1() { System.out.println("Step 1"); } @Override public void method2() { System.out.println("Step 2"); } @Override public void method3() { System.out.println("Step 3"); } }
Test.java
package com.templatemethod; public class Test { public static void main(String[] args) { AbstractClass ac = new ConcreteClass(); ac.template(); } }
总结:模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中去实现,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而每个步骤的实现可以在子类中完成。
以上是关于编程模式之模板方法模式(Template Method)的主要内容,如果未能解决你的问题,请参考以下文章
GOF23设计模式之模板方法模式(template method)
Java设计模式透析之 —— 模板方法(Template Method)
Java设计模式透析之 —— 模板方法(Template Method)