模板方法模式
Posted diameter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板方法模式相关的知识,希望对你有一定的参考价值。
名称:
模板方法模式(Template Method Pattern)
问题:
The Template Method pattern provides a method that allows subclasses to override parts of the method without rewriting it. Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template method lets subclasses redefine certain steps of an algorithm without changing the structure of the algorithm.
解决方案:
1、 模式的参与者
1、AbstractClass
-定义抽象的原语操作,具体的子类将重新定义它们以实现一个算法的各步骤
-实现一个模版方法,定义一个算法的骨架。该模版方法不仅调用原语操作,也调用定义在AbstractClass或其他对象中的操作。
2、ConcreteClass
-实现原语操作以完成算法中与特定子类相关步骤。
2.实现方式
abstract class AbstractClass { public void TemplateMethod() { SpecificMethod(); abstractMethod1(); abstractMethod2(); } public void SpecificMethod() { System.out.println(AbstractClass special method."); } public abstract void abstractMethod1(); public abstract void abstractMethod2(); }
class ConcreteClass extends AbstractClass { public void abstractMethod1() { System.out.println("concrete method1"); } public void abstractMethod2() { System.out.println("concrete method 2"); } }
参考资料
《设计模式:可复用面向对象软件的基础》