定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

AbstractClass 是抽象类,其实也是一个抽象模板,定义并实现了一个模板方法,这个模板方法一般是具体方法,它给出了一个顶极端逻辑骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类中实现。

ConcreteClass ,实现父类定义的一个或多个抽象方法,每一个AbstractClass 都可以有任意多个 ConcreteClass 与之对应,每一个 ConcreateClass 都可以给出这些抽象方法的不同实现,从而使得顶级逻辑的实现各不相同。

模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来实现它的优势,它提供了一个很好的代码复用平台。

当我们要完成某一细节层次一致的一个过程或一系列步骤,但个别步骤在更详细的层上的实现可能不同时,通常使用模板方法模式来实现。

最新文章

  1. UVA 10791 Minimum Sum LCM(分解质因数)
  2. Java学习-003-JDK、JRE、JVM简介
  3. EDIUS设置自定义输出的方法
  4. 从new Function创建函数联想到MVC模式
  5. SDUT 1570 C 旅行(DFS)
  6. Java程序员也应该知道的系统知识系列之(网卡,cpu,内存,硬盘,虚拟化)
  7. 建立企业内部mavenserver并使用Android Studio公布公共项目
  8. 1217.1——OC准备
  9. 【转】百度API获取城市名地名(附源码)
  10. CentOS7 citus9.5 集群安装及管理
  11. RPC简介与Thrift框架
  12. 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合
  13. (办公)SpringBoot与mybatisGenerator自动生成.
  14. Centos7中网络及设备相关配置
  15. 从Excel表中导入数据时日期格式的验证问题解决
  16. Linux 下执行Shell 脚本的方式
  17. 4月1日->-4月15日 2周阶段性计划
  18. Tcp编程常见问题及解决方法总结
  19. - (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints
  20. [CF] Sasha and One More Name

热门文章

  1. arcgis-tomcat-cors
  2. bug20170125
  3. 在U盘上安装Windows 7的详细步骤
  4. python--selenium实用的自动生成测试HTML报告方法--HTMLTestRunner
  5. dice 概率论 概率DP
  6. nginx+keepalived实现负载均衡nginx的高可用
  7. IIS目录
  8. ES6必知必会 (五)—— Promise 对象
  9. Reaction 开源可自定义实时的电商平台
  10. 使用js 文件参数 以及IHttpModule实现服务验证asp.net 版的初步实现