昨天下午闲暇无事翻了一下《java与模式》,偶然看到模板方法模式这一章,猛然间明白自己以前常用这模式,居然不知道。现把模板方法模式学习记录一下。
模板方法模式示意性代码如下.
下面定义的是抽象模板类:
public abstract class AbstractFatherClass {
/**
* 模板方法的声明与实现
*/
public void templateMethod() {
// 调用基本方法
this.doOperation1();
// 调用基本方法
this.doOperation2();
this.doOperation3();
}
/**
* 基本方法的声明 (此方法让此抽象类的子类实现)
*/
protected abstract void doOperation1();
/**
* 基本方法的声明 (此方法让此抽象类的子类实现)
*/
protected abstract void doOperation2();
private final void doOperation3() {
// dosometing
}
}
我们可以看到上面的代码中 doOperation1()和doOperation2()这两个基本方法在抽象模板类并没有实现,而是交给子类(具体模板类)去实现。
接下来定义具体模板类,具体模板角色主要实现抽象模板角色声明的抽象方法
public class ConcreteClass extends AbstractFatherClass {
/**
* 实现抽象父类声明的抽象方法
*/
@Override
protected void doOperation1() {
System.out.println("doOperation1 method");
}
/**
* 实现抽象父类声明的抽象方法
*/
@Override
protected void doOperation2() {
System.out.println("doOperation2 method");
}
}
上面的具体模板类实现了父类声明的基本方法doOperation1(),doOperation2()。
模板方法模式可以用一句很简单的话来表达:在父类的一个方法中定义一个算法的骨架,把具体的留给子类去做。
至于应该在什么阶段把处理分开来,哪些处理交给父类,哪些处理交给子类,这个要看实际情况然后去运用。
可以说模板方法模式是面向对象三大特性:继承,封装,多态 最简单的体现。
分享到:
相关推荐
在给定的PPT内容中,首先通过一个简单的生活实例——泡咖啡与泡茶的过程——来引入模板方法模式的应用场景。无论是泡咖啡还是泡茶,都有几个共同的步骤: 1. **烧开水**:这是泡咖啡和泡茶都必需的。 2. **泡制过程*...
通过学习和应用模板方法模式,开发者可以在保证代码结构清晰的同时,提高代码的复用性和可维护性。在实际开发中,模板方法模式常用于框架设计、游戏逻辑、GUI组件等场景,有助于降低复杂度,提高代码的可读性和可...
"模式匹配学习模板"是专为LabVIEW用户设计的,旨在帮助他们掌握这一核心技能。这个压缩包包含的学习模板,提供了深入理解并实践模式匹配的源程序。 LabVIEW,全称Laboratory Virtual Instrument Engineering ...
模板模式是一种行为设计模式,它使你能在不破坏封装性的前提下,定义一系列算法的族,每一种算法都由一个方法来实现。这种类型的设计模式属于行为模式。 模板模式的关键在于一个抽象类(或接口)定义了算法的主要...
《工厂方法模式在简易计算器重构中的应用》 在软件工程中,设计模式是解决常见问题的模板,它们为程序员提供了一种标准化的解决方案。工厂方法模式(Factory Method Pattern)是面向对象设计模式的一种,它在实际...
模板方法模式是面向对象设计模式的一种,主要用于定义一个算法的框架,允许子类在不改变算法整体结构的情况下,自定义算法的某些特定步骤。这种模式遵循开闭原则,即对扩展开放,对修改关闭。 首先,我们要理解模式...
在这个名为"TemplateMethodJava"的项目中,开发者提供了一个简单的示例来展示如何在Java中应用模板方法模式,同时结合了组合和继承的使用。通过这种方式,我们可以看到如何通过代码结构来展示这两种强大的编程概念。...
《模板方法设计模式详解》 模板方法设计模式是面向对象设计模式中的一种行为模式,它允许在父类中定义一个算法的框架,而将一些步骤的实现延迟到子类中。这种模式通常用于代码复用,特别是在有多个相似类,但它们在...
本文将深入探讨如何利用机器学习技术,特别是模板匹配方法,来解决简单目标识别与意图分析的问题。我们将通过一个军事实例,即基于无人机或卫星图像分析敌军坦克集团的作战意图,来阐述这一过程。 首先,我们需要...
最后,模板匹配(Template Matching)是一种简单直接的模式识别方法,主要用于图像处理。该方法将查询图像(模板)与待检测区域逐像素比较,计算相似度,以确定是否存在匹配。通常采用的方法有绝对差值、平方差值或...
模板匹配法是模式识别的一种简单而直观的方法,尤其适用于处理结构化数据。在这个PPT学习教案中,我们将深入探讨模板匹配法的基本概念、原理及其应用。 首先,模板匹配法可以被视为一种统计决策方法的特殊情况,它...
在给定的标题“状态及模板和迭代等设计模式及实现”中,提到了三种经典的设计模式:状态模式、模板模式和迭代器模式。这些模式都是软件工程中常用的设计策略,旨在提高代码的可复用性、可读性和可维护性。 **状态...
模板方法设计模式是面向对象设计模式的一种,它在Spring框架中被广泛应用于简化代码和实现可扩展性。在Spring Boot中,模板方法模式通常体现在各种模板类中,如RestTemplate、JdbcTemplate等,它们提供了一种标准的...
本资源主要涵盖了三种经典的设计模式:策略模式、工厂方法模式以及观察者模式,对于初学者来说是非常有价值的学习资料。 **策略模式**是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的...
"ReactJs官方学习模板" 提供了一个基础的起点,帮助初学者更好地理解和实践 ReactJS 的核心概念。 在这个模板中,你将找到以下关键知识点: 1. **React组件**:React 应用是由多个组件构成的,每个组件都是独立的...
在PHP开发中,模板技术是一种将业务逻辑与页面展示分离的重要方法,它的核心目标是让开发者专注于编写程序逻辑,而设计师则可以独立地设计和修改页面样式,提高工作效率,提升代码可读性和维护性。本篇文章将深入...
但本文主要关注基于模板匹配的简单实现,这是一种相对直观且易于理解的方法。 总的来说,"手写数字识别之模板匹配法"是通过在已知的数字模板库中寻找最佳匹配,实现对手写数字的自动识别。Visual C++结合OpenCV库,...
《简易试卷模板(Word)制作指南》 在教育领域,试卷是评估学生学习成效的重要工具。一份精心设计的试卷能够准确地反映出教学目标,而使用Word制作试卷则因其简便快捷而受到广大教师的青睐。本篇文章将详细介绍如何...
在这个压缩包中,包含了三种工厂模式的C++实现:简单工厂模式、工厂方法模式以及抽象工厂模式。让我们一一探讨这些模式。 1. 简单工厂模式: 简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。...
简单工厂模式、工厂方法模式和抽象工厂模式是其三种主要形式。 3. **抽象工厂模式**:在工厂模式的基础上更进一步,允许创建一系列相关的对象家族,而无需明确指定它们的具体类。 4. **构造器模式**(也称为建造者...