




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TemplateMethod模式TopicTemplateMethod模式原始代码复制/粘贴代码实现复用重构-比较代码,找出冗余重构重构的动机当不变的部分和可变的部分混合在一起的时候,不变的行为就会在子类中重复出现.通过重构到TemplateMethod可以摆脱重复的不变行为的纠缠,超类实现不变的算法.TemplateMethod实现一个算法的不便部分,并将可变的部分留给子类来实现.重构优点与缺点优点通过把不变行为搬移到超类,去除子类中的重复代码简化并有效地表达了一个通用算法的步骤.容许子类很容易定制一个算法缺点当为生成算法,子类必须实现很多方法的时候,会增加设计的复杂度TemplateMethod模式意图:定义一个操作中算法的框架,而将一些具体步骤在子类中实现.这样使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。问题:要完成在某一细节层次一致的过程或一列步骤,但是个别步骤在更详细的层次上的实现可能不能.解决方案:容许定义可变的子步骤,同时保持基本过程一致.结构:参与者:TemplateMethod模式参与者:AbstractTemplate(定义一个或多个抽象操作,以便让子类实现,定义并且实现一个模板方法ConcreteTemplate实现父类所定义的抽象方法效果模板提供了一个很好的代码复用平台,它还有助于确保所需步骤的实现.TemplateMethod模式适应性:一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。这是Opdyke和Johnson所描述过的“重分解以一般化”的一个很好的例子。首先识别现有代码中的不同之处,并且将不同之处分离为新的操作。最后,用一个调用这些新的操作的模板方法来替换这些不同的代码。控制子类扩展。模板方法只在特定点调用“hook”操作,这样就只允许在这些点进行扩展。
TemplateMethod模式-案例标准案例HookFramework案例TemplateMethod模式-案例存款计算利息TemplateMethod模式-案例JDBC存取分析SpringFramework关于重构关于Framework概念打印表单框架开发过程第一个阶段是分析阶段。和应用开发一样,框架开发首先要确定框架的范围(scope)和目标(objective)。设计阶段有两大任务。首先,对特定领域框架层和跨领域框架层都要识别出通用点(commonspot)和扩展点(hotspot)。其次,为框架设计架构,它将用作实现阶段的蓝图。在设计阶段,也可以创建应用框架原型(prototype),然后在其上构建一个样本应用;通过该样本应用测试了应用框架原型,有助于你了解你所开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厨房设计合同范本
- 茶艺师五级模考试题
- 代理运营合同范本
- 劳务单包工合同范本
- 养殖检测服务合同范本
- 正常人体结构习题库(附参考答案)
- 医院厨房装修合同范本
- 上海高楼买卖合同范本
- 借地建房合同范本
- 《青山不老》说课稿
- 新型抗肿瘤药物临床应用指导原则
- 中国居民膳食指南(全)
- Boomer-XL3D凿岩台车(修订版)
- 幼儿园小班故事《贪吃的小猪》课件
- 三年级(下)道德与法治第三单元教材分析课件
- Passport评估工具:项目复杂度评估表
- 南宁铁路局招聘2023年高校毕业生133人笔试参考题库(共500题)答案详解版
- 军用飞机改进方案
- 新版-GSP-:中药材、中药饮片知识培训试题及答案
- 装修隐蔽工程验收记录表范例
- 摄影基础知识教学课件-摄影师入门基础知识
评论
0/150
提交评论