设计模式(22)------模板方法模式

来源:互联网 发布:手机绿色上网软件 编辑:程序博客网 时间:2024/06/06 04:07

模板方法作用:

定义一个操作中算法的骨架,将一些算法的步骤延迟到子类中。


应用场景:

(1)一次性实现一个算法的不变的部分,将可变的留给子类来实现。

(2)各子类中公共的行为应该被提起出来并集中到一个公共的父类中,以避免代码的重复。

(3)控制子类扩展。


参与对象:

(1)AbstractClass

定义抽象的原语操作,具体的子类将重定义它们,将实现一个算法的各个步骤。

(2)ConcreteClass

继承抽象类,完成算法中与特定子类相关的步骤。


eg:

AbstractClass

package com.lanhuigu.base.design.behavior.TemplateMethod;/** * AbstractClass: 定义抽象的原语操作,具体的子类将重定义它们,将实现一个算法的各个步骤。  */public abstract class Template {public abstract void print();public void update() {System.out.println("******begin******");for (int i=0;i<10;i++) {print();}System.out.println("******end******");}}

ConcreteClass

package com.lanhuigu.base.design.behavior.TemplateMethod;/** * ConcreteClass: 继承抽象类,完成算法中与特定子类相关的步骤。 */public class ConcreteTemplate extends Template {@Overridepublic void print() {// TODO Auto-generated method stubSystem.out.println("子类实现打印方法");}}

Client

package com.lanhuigu.base.design.behavior.TemplateMethod;public class Test {public static void main(String[] args) {Template template = new ConcreteTemplate();template.update();}}

运行结果:




0 0
原创粉丝点击