`

[原]模板方法模式

阅读更多

[关键字]:java,design pattern,设计模式,《Java与模式》学习,template method pattern,模板方法模式
[环境]:StarUML5.0 + JDK6
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys/
[正文]:



 


package pattern.template;
/**
 * 模板方法模式:Template Method Pattern
 * @version 2009-6-15
 * @author Winty(wintys@gmail.com)
 */
public class TemplateMethodTest{
    public static void main(String[] args){
        AbstractClass ac = new ConcreteClass();
        ac.theTemplateMethod();
    }
}

/**
 * 抽象模板角色,在此定义模板方法
 */
abstract class AbstractClass{
    public void theTemplateMethod(){
        operation1();
        operation2();
        operation3();
        doHookOperation();
    }

    protected abstract void operation1();
    protected abstract void operation2();

    public final void operation3(){
        System.out.println("operation3");
    }

    public void doHookOperation(){
        //空方法
    }
}

/**
 * 具体模板角色
 */
class ConcreteClass extends AbstractClass{
    protected void operation1(){
        System.out.println("operation1");
    }

    protected void operation2(){
        System.out.println("operation2");
    }
}


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

相关推荐

    [浪曦原创]JAVA设计模式.第10讲.模板方法模式.rar

    **模板方法模式(Template Method Pattern)**是一种行为设计模式,它在面向对象编程中扮演着重要角色。在Java中,这种模式允许我们定义一个算法框架,而将具体步骤的实现延迟到子类中。模板方法模式是基于继承的,...

    模板方法模式(jzkangta).rar

    模板方法模式是一种行为设计模式,它允许在抽象类中定义操作的基本步骤,并允许子类在不改变算法结构的情况下重写具体步骤。这种模式是面向对象设计中的一种常见实践,有助于保持代码的整洁和可扩展性。 在Java编程...

    设计模式——原版的设计模式

    模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中;备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象的状态;观察者模式定义了对象之间...

    最新抖你妹原版主题源码仿抖音模式套图SEO源码-Wordpress图片主题

    最新抖你妹原版主题源码仿抖音模式套图SEO源码_Wordpress图片主题最新抖你妹原版主题源码仿抖音模式套图SEO源码_Wordpress图片主题最新抖你妹原版主题源码仿抖音模式套图SEO源码_Wordpress图片主题最新抖你妹原版...

    【资源免费下载】Java代码积累丨大话设计模式(Java实现版本)、线程协作

    模板方法模式 行为模式(对象行为模式) 策略模式 观察者模式 状态模式 导入模式 迭代器模式 命令模式 职责链模式 进来者模式 访问者模式 数据结构 Stack - 使用泛型实现Stack 生成斐波那契数列 使用容器 利用迭代器...

    软件设计模式经典案例讲解

    本篇文章将深入探讨几种经典的设计模式:模板方法模式、外观模式、代理模式、装饰器模式、桥模式、工厂方法模式以及组合模式。 首先,模板方法模式(Template Method Pattern)是行为设计模式的一种,它定义了操作...

    基于原生小程序开发模式gulp开发工作流项目模板

    "基于原生小程序开发模式gulp开发工作流项目模板"就是这样一个解决方案,它将Gulp与微信小程序的开发流程相结合,提升了开发体验。 首先,我们要理解什么是Gulp。Gulp是一个基于Node.js的自动化任务管理工具,通过...

    java设计模式_原创

    其中包括责任链模式、命令模式、迭代器模式、访问者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。责任链模式通过建立处理请求的对象链,使得请求可以在链上传递,直到被某个对象...

    软件设计精要与模式原代码

    4. **行为型模式**:如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、责任链模式(Chain of Responsibility)、命令模式(Command)、迭代器模式(Iterator)、访问者模式...

    JavaScript 设计模式(高清扫描版本)- 张容铭

    3. 行为型模式:这些模式关注对象之间的交互和职责分配,包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。在JavaScript中...

    PHP原生模板引擎 最简单的模板引擎

    在相关内容中,提到了其他可能感兴趣的文章,涵盖了ThinkPHP框架中使用Smarty、PHP模板引擎的比较分析、Smarty的缓存使用、PHP模板引擎的简单实现、MVC模式下的模板引擎开发经验,以及Yii框架中使用Twig的例子等。...

    基于Matlab-图像匹配——模板匹配.docx

    模板匹配是一种最原始、最基本的模式识别方法。利用模板匹配可以在一幅图像中找到已知的物体。 二、实验原理与内容 模板匹配是指用一个较小的图像,即模板与源图像进行比较,以确定在源图像中是否存在与该模板相同...

    Django_layui后台模板

    【Django_layui后台模板】是一个专门为Django框架设计的、基于Layui前端框架的后台管理模板。Django是Python开发的一款高级Web框架,它强调代码的可读性和简洁性,而Layui则是一款轻量级的前端UI框架,提供了丰富的...

    原创-设计模式实现代码

    - 模板方法模式(Template Method):定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - 命令模式(Command):将一个请求封装为一个...

    ThinkPHP完美后台模板

    4. **丰富的库函数和助手方法**:提供了一系列内置的工具函数和助手方法,帮助开发者快速实现常见功能。 在这个“完美后台模板”中,我们可以看到以下几个关键目录: 1. **index.php**:这是项目的入口文件,通常...

    petshop 4.0 5.0 微软原版设计模式

    8. 模板方法模式(Template Method):在PetShop的业务逻辑中,模板方法模式可以用来定义算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义特定的步骤。 9. 组合模式(Composite):...

    原版PPT和源码

    9. 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 10. 策略模式:定义一系列的算法,并将每一个算法封装起来,使它们...

    23种java设计模式.pdf

    * Template(模板模式):使用模板方法来实现算法的框架。 * Chain of Responsibility(责任链模式):将多个对象连成一条链,处理请求的对象可以是链中的任何一个对象。 * Memento(纪念品模式):保存对象的状态,...

    图像处理模板匹配

    在这个场景中,我们关注的是“模板匹配”这一特定的技术,它主要用于识别和定位图像中的特定模式或对象。模板匹配是通过比较一个较小的图像(模板图像)与大图像(被搜索图像)的不同部分,来寻找与模板最相似的区域...

    java的5种模式.docx

    在Java中,有多种设计模式,包括代理模式、模板方法模式、建造者模式等。以下是对这些模式的详细说明: 1. **代理模式(Proxy Pattern)** 代理模式的主要目的是提供对原对象的间接访问,以便在访问原对象时添加额外...

Global site tag (gtag.js) - Google Analytics