定义
定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法结构即可重定义该算法的某些特定步骤。
角色
该设计模式的角色划分较为简单
抽象模版类
具体模版类
eSiteGroup站群管理系统1.0.4下载eSiteGroup站群管理系统是基于eFramework低代码开发平台构建,是一款高度灵活、可扩展的智能化站群管理解决方案,全面支持SQL Server、SQLite、MySQL、Oracle等主流数据库,适配企业级高并发、轻量级本地化、云端分布式等多种部署场景。通过可视化建模与模块化设计,系统可实现多站点的快速搭建、跨平台协同管理及数据智能分析,满足政府、企业、教育机构等组织对多站点统一管控的
抽象模版类又包含了这样几个方法:模版方法,具体方法,抽象方法,勾子方法。
立即学习“Java免费学习笔记(深入)”;
模版方法
决定了算法的实现步骤,该方法中调用了具体方法,待实现的抽象方法,勾子方法等。是算法执行的一个模版。
具体方法
具体方法是算法中较稳稳定的部分,所以抽象类中给出了方法的具体实现。
抽象方法
抽象方法正是定义中所说的延迟到子类实现的方法。
勾子方法
一般模版方法会给出默认实现,子类中看情况对这个方法进行覆盖重写。
UML

实现过程
/**
* Created by tiantian on 2018/7/28
*/public abstract class AbstractTemplateMethod {
public void templateMethod() {
implementedMethod();
abstractMethod();
hookMethod(); // ... more than method invoke
} public void anotherTemplateMethod() { // do other things
} public abstract void abstractMethod(); public void hookMethod() {} public void implementedMethod() {
System.out.println("I have been implemented in TemplateMethod class.");
} // ... more than method abstract or implemented.}/**
* Created by tiantian on 2018/7/28
*/public class ConcreteTempleteMethod extends AbstractTemplateMethod {
@Override
public void abstractMethod() {
System.out.println("Do something");
} @Override
public void hookMethod() {
System.out.println("Do something in hookMethod");
}
}定义
定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法结构即可重定义该算法的某些特定步骤。
角色
该设计模式的角色划分较为简单
抽象模版类
具体模版类
抽象模版类又包含了这样几个方法:模版方法,具体方法,抽象方法,勾子方法。
立即学习“Java免费学习笔记(深入)”;
模版方法
决定了算法的实现步骤,该方法中调用了具体方法,待实现的抽象方法,勾子方法等。是算法执行的一个模版。
具体方法
具体方法是算法中较稳稳定的部分,所以抽象类中给出了方法的具体实现。
抽象方法
抽象方法正是定义中所说的延迟到子类实现的方法。
勾子方法
一般模版方法会给出默认实现,子类中看情况对这个方法进行覆盖重写。
UML

实现过程
/**
* Created by tiantian on 2018/7/28
*/public abstract class AbstractTemplateMethod {
public void templateMethod() {
implementedMethod();
abstractMethod();
hookMethod(); // ... more than method invoke
} public void anotherTemplateMethod() { // do other things
} public abstract void abstractMethod(); public void hookMethod() {} public void implementedMethod() {
System.out.println("I have been implemented in TemplateMethod class.");
} // ... more than method abstract or implemented.}/**
* Created by tiantian on 2018/7/28
*/public class ConcreteTempleteMethod extends AbstractTemplateMethod {
@Override
public void abstractMethod() {
System.out.println("Do something");
} @Override
public void hookMethod() {
System.out.println("Do something in hookMethod");
}
}相关文章:
相关视频:










