`
jtlyuan
  • 浏览: 66982 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

模板方法模式Templet Method Pattern

 
阅读更多

什么是模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法可以使子类可以不改变一个

算法的结构即可以重定义该算法的某些特定步骤。

 

 

模板方法模式的特点:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。

 

当不变的和可变的行为在方法中混合在一起时,不变的行为就会在子类中重复出现,模板方法模式就是将这些不变的

行为搬移到一个超类中,避免重复代码。

 

 

 

举例说明:

父类代码:

public abstract class TemplateMethod {
 //父类定义了做事的步骤
 public void templateMethod(){
  step1();
  step2();
  step3();
 }
 protected final void step1(){
  //...此步骤子类改变不了
 }
 
 //用来给不同子类不同的实现
 protected abstract void step2();
 
 protected final void step3(){
  //...此步骤子类改变不了
 }
}

 

子类代码:

public class SubTemplateMethod extends TemplateMethod {

 @Override
 protected void step2() {
  //子类实现其步骤
 }
}

OK,最后加个图,现在模板方法已经完成了

 

 

       应用情景:

       1,你想将相同的算法放在一个类中,将算法变化的部分放在子类中实现。

       2,子类公共的算法应该放在一个公共的类中,避免代码重复。

  • 大小: 19.6 KB
分享到:
评论

相关推荐

    templet3:简单的模板演示

    "templet3-main"很可能是指一个包含主要模板文件的目录或者文件,可能是整个模板系统的入口点。在实际项目中,"main"常常用来标识主文件或主要的配置文件,这个"templet3-main"可能包含了整个模板系统的核心代码或...

    s05947_templet_

    【标题】"s05947_templet_" 指的可能是一个模板集合,特别是针对 PowerPoint 演示文稿的设计模板。"templet" 这个标签进一步确认了这一点,表明这是一个用于创建专业幻灯片展示的资源包。 【描述】"templet powzer ...

    JAVA23种设计模式代码学习.zip

    获取到【文件夹】名称: abstract_factory_pattern 获取到【文件夹】名称: adapter_pattern 获取到【文件夹】名称: bridge_...获取到【文件夹】名称: templet_pattern 获取到【文件夹】名称: visitor_pattern

    根据PDF模板生成PDF文件 下载 在线预览 需要的jar、templet

    "templet"在这里指的是模板,即预定义的PDF文件,它包含了固定布局和样式,开发者只需要在适当的位置填入动态数据,即可生成新的PDF。模板可以是空白的,也可以包含文本、图像、表格等元素,这样可以快速生成符合...

    解决Layui中templet中a的onclick参数传递的问题

    以下是我的模板,主要用在列表页table中的按钮,点击弹窗展开详情页的功能。 [removed] [removed];' bfnclick='showContent({{d.CONTENT}})'>查看内容 [removed] 项目跑了许久,突然说点击查看内容没反应,查出...

    templet.mat手写数字样本

    templet.mat手写数字样本,包含0到9的手写数字各150个,可以用来实验,《模式识别与智能计算——matlab技术实现》

    layui使用templet格式化表格数据的方法

    在layui的表格配置中,`templet`字段允许我们传递一个函数或者字符串模板,用于处理单元格数据。例如,在配置的`cols`数组中,我们看到了一个`GMT_CREATE`字段,它的`templet`配置使用了一个函数,该函数接收数据...

    Vbs templet on securCRT

    this is for personal use. the file had password, please don't download.

    Geatpy遗传算法使用手册.pdf

    例如,moea_NSGA3_templet.py是实现了NSGA-III多目标优化算法的模板类。此外,还介绍了如何利用Geatpy的算子类来实现自适应的重组和变异算子。 五、多染色体混合编码部分,手册详细讲解了PsyPopulation类的使用方法...

    Templet_7.4DHT11.rar

    "Templet_7.4DHT11.rar"压缩包提供的资源,正是一个实践此类应用的实例项目,包含了完整的源代码和工程配置,便于学习者进行实践操作。 首先,CC2530是一款由Texas Instruments公司推出的高性能、低功耗的无线微...

    templet.mat

    利用MATLAB软件手写数字识别,提供的0到9的数据。

    通过EXCEL模板打印

    ### 通过EXCEL模板打印:VB下的实现方法 在日常工作中,我们经常需要根据不同的数据集来批量生成报告或文档。Microsoft Excel凭借其强大的数据处理能力和便捷的操作方式,成为了许多企业和个人进行数据管理的重要...

    PHP模板基础技术学习

    `templet`目录很可能包含了多个不同的模板文件,这些文件代表了网站的不同部分或者设计样式。开发者可以根据需要选择或切换不同的模板,以改变网站的外观。模板文件通常包含HTML布局、CSS样式和PHP代码,用来插入...

    templet of income statement

    simple templet of income statement in english

    dede5.7GBK 红色大气文章模板

    6. `templet-filelist.inc`、`templet-pluslist.inc`、`templet-dirlist.inc`:这些是模板的自定义函数文件,用于处理特定的列表显示,比如文件列表、插件列表或目录列表,增强了模板的灵活性和功能性。 安装和使用...

    winphone 7.1 axure UI templet

    winphone 7.1 axure UI templet

    SSH项目实例,有不同写法模板

    这些模板展示了不同的设计模式和最佳实践,例如单例模式、工厂模式在服务层的运用,以及贫血模型和富模型两种不同的业务对象设计。 开发者可以通过研究这些模板,学习如何配置SSH框架,理解它们之间的协作方式,...

    layui的table中显示图片方法

    图片需要用到模板.templet: 注意div不可省略,48px指的是div的高度,如果要决定img图片的高度,需要单独设计style [removed] layui.use('table',function () { var table= layui.table; table.render({ elem:'...

    顺手牵码(Code-Templet.NET) 正常运行版

    特色:一个能改变你的编写代码习惯的软件,能让用户...特点:超便捷管理常用代码模板,使用自定义快捷键调用常用代码模板; 注意:安装前必须安装Microsoft .NET Framework 2.0)。说明文档请到我的空间内下载,谢谢。

Global site tag (gtag.js) - Google Analytics