设计模式回顾系列文章: 主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。
------------------------------------------------
模板方法模式(TemplateMethod)
定义一个操作中算法的骨架,而将一些步骤延迟到子类中,不改变算法的结构而重定义它的步骤。
允许定义可变的子步骤,同时保持基本过程一致。
TemplateMethod模式由一个抽象类组成,这个抽象类定义了需要覆盖的基本TemplateMethod方法。每个从这个抽象类派生的具体类将为此抽象类实现新方法。
程序实现:
抽象类Algorithm.java:定义算法执行步骤(templateMethod方法),以及部分步骤的实现(doStep2)。
public abstract class Algorithm{
public void templateMethod(){
doStep1();
doStep2();
doStep3();
doStep4();
doStep5();
}
public abstract void doStep1();
public abstract void doStep4();
public abstract void doStep5();
public void doStep2(){
System.out.println("Default Step 2!");
}
public void doStep3(){
System.out.println("Default Step 3!");
}
}
实体算法类1:继承模板类Algorithm,同时实现模板中未实现的步骤,可以覆写已定义的步骤。
public class CustomAlgorithm1 extends Algorithm{
public void doStep1(){
System.out.println("CustomAlgorithm1 Step1");
}
public void doStep4(){
System.out.println("CustomAlgorithm1 Step4");
}
public void doStep5(){
System.out.println("CustomAlgorithm1 Step5");
}
}
实体算法类2:同实体算法类1。
public class CustomAlgorithm2 extends Algorithm{
public void doStep1() {
System.out.println("CustomAlgorithm2 Step1");
}
public void doStep4() {
System.out.println("CustomAlgorithm2 Step4");
}
public void doStep5() {
System.out.println("CustomAlgorithm2 Step5");
}
}
入口main方法:
public static void main(String[] args){
Algorithm algorithm=new CustomAlgorithm1();
algorithm.templateMethod();
algorithm=new CustomAlgorithm2();
algorithm.templateMethod();
}
此时因多态机制,会分别执行不同的算法步骤。
举例:JdbcTemplate、HibernateTemplate、SocketTemplate等可以使用模板的场景。
分享到:
相关推荐
设计模式C++学习之模板方法模式(Template Method)
Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现
java的23种常用设计模式:模板方法模式
模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。 具体...
本文实例讲述了Python设计模式之模板方法模式。分享给大家供大家参考,具体如下: 模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的...
模板方法(TemplateMethod) 用意:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
C++设计模式课件3_Template Method_模板方法.pdf
设计模式--模板方法模式java例子
C++设计模式代码资源3_Template Method_模板方法.zip
主要为大家详细介绍了C++设计模式之模板方法模式TemplateMethod,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象...4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
Template Method 模式 Visitor 模式 Guarded Suspension 模式 Producer Consumer 模式 Worker Thread 模式 Thread-Per-Message 模式 Future 模式 Read-Write-Lock 模式 Two-phase Termination 模式 ...
4 模板方法模式 5 工厂方法模式 6 抽象工厂模式 7 建造者模式 8 代理模式 9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版方法+责任链+策略+工厂方法 ...
设计模式专题之(十三)模板模式---设计模式模板模式示例代码(python--c++)
设计模式的模板方法模式的例子,希望对大家有用~~~~~~~~
Method模式是比较简单的设计模式之一,但它却是代码复用的一项基本的技术,在类库中尤其重要。变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好...
行为型模式,共十一种: 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。
主要介绍了C++设计模式编程中Template Method模板方法模式的运用,讲到了包括模板方法模式中的细分方法以及适用场景,需要的朋友可以参考下