25 C设计模式模板方法模式.pptVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
25C设计模式模板方法模式ppt课件

www.ChinaSA.info www.ChinaSA.info Design Patterns 模板方法模式 刘 伟 (Sunny) weiliu_china@126.com 大纲 模板方法模式概述 模板方法模式的结构与实现 模板方法模式的应用实例 钩子方法的使用 模板方法模式的优缺点与适用环境 插卡 验证 业务处理(存款/取款/转账……) 退卡 模板方法模式概述 请客吃饭示意图 模板方法模式概述 分析 请客吃饭:(1) 点单 ? (2) 吃东西? (3) 买单 软件开发:某个方法的实现需要多个步骤(类似“请客”),其中有些步骤是固定的(类似“点单”和“买单”),而有些步骤并不固定,存在可变性(类似“吃东西”) 模板方法模式:基本方法(“点单”、“吃东西”和“买单”) 模板方法( “请客”) 具体方法 抽象方法 模板方法模式概述 模板方法模式的定义 类行为型模式 模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类不改变一个算法的结构即可重定义该算法的某些特定步骤。 Template Method Pattern: Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithms structure. 模板方法模式概述 模板方法模式的定义 是一种基于继承的代码复用技术 将一些复杂流程的实现步骤封装在一系列基本方法中 在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果 模板方法模式的结构与实现 模板方法模式的结构 模板方法模式的结构与实现 模板方法模式的结构 模板方法模式包含以下两个角色: AbstractClass(抽象类) ConcreteClass(具体子类) 模板方法模式的结构与实现 模板方法模式的实现 模板方法 (Template Method) 基本方法 (Primitive Method) 抽象方法(Abstract Method) 具体方法(Concrete Method) 钩子方法(Hook Method) 模板方法模式的结构与实现 模板方法模式的实现 钩子方法 (1) “挂钩”方法: IsXXX(),返回类型为bool类型 (2) 空方法 …… //模板方法 public void TemplateMethod() { Open(); Display(); //通过钩子方法来确定某步骤是否执行 if (IsPrint()) { Print(); } } //钩子方法 public bool IsPrint() { return true; } …… 模板方法模式的结构与实现 模板方法模式的实现 抽象类典型代码: abstract class AbstractClass { //模板方法 public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); PrimitiveOperation3(); } //基本方法—具体方法 public void PrimitiveOperation1() { //实现代码 } //基本方法—抽象方法 public abstract void PrimitiveOperation2(); //基本方法—钩子方法 public virtual void PrimitiveOperation3() { } } 模板方法模式的结构与实现 模板方法模式的实现 具体子类典型代码: class ConcreteClass : AbstractClass { public override void PrimitiveOperation2() { //实现代码 } public override void PrimitiveOperation3() { //实现代码 } } 模板方法模式的应用实例 实例说明 某软件公司要为某银行的业务支撑系统开发一个利息计算模块,利息的计算流程如下: (1) 系统根据账号和密码验证用户信息,如果用户信息错误,则系统显示出错提示。 (2) 如

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档