模板方法模式

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

举例1:户口本的公共内容就是封装在类的模板,只留下部分让用户来填写。

举例2:论文模板、简历模板等

代码

    class Program{static void Main(string[] args){AbstractClass c;c=new ConcreteClassA();c.TemplateMethod();c = new ConcreteClassB();c.TemplateMethod();Console.Read();}}abstract class AbstractClass{public abstract void PrimitiveOperation1();//一些抽象行为,放到子类去实现public abstract void PrimitiveOperation2();public void TemplateMethod()//模板方法,给出了逻辑的骨架,而逻辑的组成是一些相应的抽象操作,他们都推迟到子类实现{PrimitiveOperation1();PrimitiveOperation2();Console.WriteLine("");}}class ConcreteClassA : AbstractClass{public override void PrimitiveOperation1(){Console.WriteLine("具体类A方法1实现");}public override void PrimitiveOperation2(){Console.WriteLine("具体类A方法2实现");}}class ConcreteClassB : AbstractClass{public override void PrimitiveOperation1(){Console.WriteLine("具体类B方法1实现");}public override void PrimitiveOperation2(){Console.WriteLine("具体类B方法2实现");}}

核心

在模板方法模式中,将相同的代码放在父类中(避免代码重复),将不同的方法放在不同的子类中。

  • 1、客户端实例化子类(里式转换)
  • 2、子类.模板方法,调用父类的模板方法
  • 3、在父类的模板方法中调抽象方法

优点

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

小编有话说

  人生逆境时,切记忍耐;人生顺境时,切记收敛;人生得意时,切记看淡;人生失意时,切记随缘;心情不好时,当需涵养;心情愉悦时,当需沉潜。

菜鸟升级记——模板方法模式相关推荐

  1. javascript设计模式-模板方法模式(Template)

    1 <!DOCTYPE HTML> 2 <html lang="en-US"> 3 <head> 4 <meta charset=&quo ...

  2. 一篇博客读懂设计模式之---模板方法模式

    设计模式之模板方法模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 简而言之就是:父类定义了骨架(调用哪些方法及其 ...

  3. 设计模式(十):模板方法模式

    目录 1.整体框架 2.介绍 2.1.定义 2.2.作用 2.3.解决的问题 3.认识模版方法模式 3.1.变与不变 3.2.好莱坞法则 3.3.对设计原则的体现 4.模式原理 4.1.UML类图 & ...

  4. 每天一个设计模式之模板方法模式(Template Method Pattern)

    所谓的模板模式就是基类(抽象类)提供出定义好的一个模板(空实现+默认实现),子类按照模板封装好的顺序去填充模板内方法的实现. 一.UML类图 图中,templateMethod是对子类暴露出的方法,它 ...

  5. Carson带你学设计模式:模板方法模式(Template Method)

    前言 今天Carson来全面总结最常用的设计模式 - 模板方法模式. Carson带你学设计模式系列文章 Carson带你学设计模式:这是一份全面 & 详细的设计模式学习指南 Carson带你 ...

  6. pve 加大local容量_蜗牛星际PVE+DSM升级记

    蜗牛星际PVE+DSM升级记 2019-05-18 11:34:51 28点赞 241收藏 62评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情 创 ...

  7. 【设计模式】第十三章:模板方法模式详解及应用案例

    系列文章 [设计模式]七大设计原则 [设计模式]第一章:单例模式 [设计模式]第二章:工厂模式 [设计模式]第三章:建造者模式 [设计模式]第四章:原型模式 [设计模式]第五章:适配器模式 [设计模式 ...

  8. 设计模式之模板方法模式(Template Method)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  9. android 模板方法模式,安卓设计模式(七)模板方法模式

    模板方法模式用于固定相关操作的执行流程,将具体实现延迟到子类中 该系列其他文章: 定义: 定义一个操作中算法的框架,而降一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定 ...

  10. JAVA 设计模式 模板方法模式

    定义 模板方法模式 (Template Method) 定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成. 模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模 ...

最新文章

  1. [Swift]LeetCode388. 文件的最长绝对路径 | Longest Absolute File Path
  2. python requests请求失败重试_Python Requests.post()请求失败时的retry设置
  3. android 4.0以上WebView不能全屏播放视频的解决办法
  4. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0 实际解决方案
  5. 微信电脑客户端_无聊的话,用微信玩玩电脑
  6. C++ Qt全局异常处理器_QT教程
  7. PIC18F452之1602自定义字符
  8. 1.0 Hadoop的介绍、搭建、环境
  9. JDK和Spring中的设计模式
  10. STL 源代码剖析 算法 stl_algo.h -- search
  11. SAP License:进项税的合理管理缩减成本
  12. Web应用程序的目录结构
  13. Java中的for循环和JavaScript中的for循环差别初探(02)
  14. python脚本转换为EXE文件
  15. 概率论与数理统计(第四版) 第二章:随机变量及其分布(第一节和第二节笔记)
  16. Java项目部署的完整流程
  17. Stream实践总结
  18. linux操作系统未来的发展方向,2.9 操作系统的未来发展趋势
  19. Codeforces Round #727 (Div. 2)题解A-D
  20. Android安全启动学习(五):Android Verified Boot 2.0

热门文章

  1. 【docker系列】docker深入浅出之安装Nginx+PHP+MySQL
  2. Latex英文论文模板汇总(elsevier、arXiv、IEEE Access)
  3. 2021年影响会计人员的十大信息技术榜单出炉,RPA再次登榜
  4. 如何在 Linux 中运行.exe 程序
  5. python制作软件安装包_Python安装包及开发工具
  6. 可怕!让无数女明星下海的换脸术来了,Facebook推出视频换脸功能!
  7. MATLAB 比较好入门书籍有哪些推荐
  8. DAVINCI DM6446 开发攻略——V4L2视频驱动和应用分析
  9. Bolt界面引擎QuickStart: SDK,教程和开发环境
  10. 2021.9.8 华为笔试题第三题