`
随枫霏
  • 浏览: 135292 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

设计模式应用场景案例分析——模板方法

阅读更多

2. 模板方法


2.1 模板方法的定义

模板方法模式可以在一个方法中定义一个算法的骨架,而将具体的实现步骤延迟到子类中去实现。这样,可以在不改变算法结构的基础上,重新定义算法的步骤。具体的类图如下图所示。


AbstractClass是一个抽象类,templateMethod()是一个普通的方法,其余2个方法primitiveOperation1(),primitiveOperation2()是2个抽象方法,在templateMethod()的实现中规划好了primitiveOperation1()和primitiveOperation2()的调用顺序,以及具体的返回值形式等内容,ConcreteClass是一个AbstractClass的实现类,它必须实现primitiveOperation1()和primitiveOperation2()方法,这样,不同的子类就会不同的primitiveOperation1()和primitiveOperation2()的实现。

2.2 模板方法举例
Java IO InputStream
     JDK自带的很多工具类都运用了某些设计模式,其中JavaIO中的InputStream这个抽象类中有3个实现了相类似功能的度read()方法。
  • 第一个read()方法指定每次只读取1个字节
  • 第二个read()方法指定将读取的二进制数据放在字节数组b中
  • 第三个read()方法执行将读取的len个字节,放在字节数组b以off偏移量的起始位置处
通过方法签名可以看到,第一个read()方法是abstract的,其余2个都是普通方法。我们进入InputStream类的实现可以看到,第二个read()方法直接调用第三个read()方法

而第三个read()方法其实是一个“算法的骨架”,在这个方法里面实现了读取数据进入字节数组的步骤,但是真正的读取操作,调用的是抽象的read()方法,不同的输入流有不同的读取一个字节的read()方法实现


  • 大小: 92.6 KB
  • 大小: 6.5 KB
  • 大小: 3.1 KB
  • 大小: 18.4 KB
分享到:
评论

相关推荐

    设计模式课程设计模板

    4. **案例分析**:课程设计模板通常会包含实际项目中的案例,通过分析这些案例,我们可以看到如何在真实场景中应用设计模式,从而更好地理解它们的实际价值。 5. **代码实现**:对于每个设计模式,通常会有具体的...

    设计模式精解——GoF23中设计模式解析

    总之,设计模式的学习和实践是一个逐步深入的过程,需要通过不断的编码实践和案例分析来加深理解。正如文中所述,设计模式的学习不仅仅是知识的积累,更是对面向对象设计思想的领悟,只有在实践中不断摸索和总结,...

    X-gen PPT下载——《研磨设计模式》 实战

    《研磨设计模式》实战是IT领域中关于软件设计的一份重要资料,它主要探讨了设计模式在实际项目中的应用。设计模式是软件工程中经过长期实践总结出的通用问题解决方案,是解决常见设计问题的经验总结。这份PPT可能是...

    软件设计(设计模式)课程实验报告.docx

    行为型设计模式主要关注对象之间的交互和责任分配,如策略模式、模板方法模式、观察者模式、访问者模式、责任链模式、命令模式、迭代器模式、备忘录模式、状态模式和解释器模式。这些模式在解决复杂的控制流程和行为...

    HeadFirst设计模式PPT

    《HeadFirst设计模式》是一本深受开发者欢迎的书籍,它以独特、易理解的方式介绍了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的最佳实践,它们为软件设计提供了可复用的...

    应用型高校实践教学案例库建设——以Linux服务器管理课程为例.pdf

    实践教学是一种开放式互动式的新型教学模式,通过模拟或者重现一些实际案例场景,让学生在这些场景中通过实践或研讨来进行学习的一种教学方法。这种教学方法注重学生动手能力和创新能力的培养,更能适应社会对学生...

    餐饮系统-软件设计.rar

    《餐饮系统设计与实现——深度解析设计模式在软件开发中的应用》 在信息化时代,餐饮行业的管理系统已经成为提高效率、优化服务的重要工具。本项目“餐饮系统-软件设计”旨在通过源程序和代码,深入探讨如何运用...

    设计模式可复用面向对象软件的基础(c++).pdf

    - **第2章 实例研究:设计一个文档编辑器**:通过实际案例分析,展示了设计模式如何应用于具体场景中,解决实际设计问题。 - **第3章 创建型模式**:介绍了一系列用于创建对象的模式,如单例模式、工厂方法模式等,...

    国外经典教材数据结构与算法——面向对象的C设计模式

    本书“国外经典教材数据结构与算法——面向对象的C++设计模式”深入探讨了如何使用面向对象编程思想来构建高效、可维护的数据结构和算法。面向对象编程(Object-Oriented Programming, OOP)以其封装、继承和多态等...

    设计模式之禅(第2版)

    接下来的部分将详细介绍23种设计模式,每种模式都将从定义、应用场景、扩展到最佳实践等方面进行阐述。 **第7章 单例模式** - **7.1 我是皇帝我独苗** 介绍单例模式的概念及其核心特点——确保一个类只有一个...

    “新工科”背景下Python语言教学案例设计——以“Python语言程序设计与问题求解”课程为例.zip

    教师可以采用混合式教学模式,结合案例分析、小组讨论、在线编程挑战等多种方式,激发学生自主学习的积极性。 10. 评估与反馈:定期的项目评估和反馈机制能够帮助学生了解自身学习进度,同时促进教师调整教学策略,...

    设计模式可复用面向对象软件的基础

    1. **阅读经典书籍**:《设计模式:可复用面向对象软件的基础》是入门设计模式的最佳选择之一,它不仅介绍了设计模式的基本概念,还提供了大量的案例分析。 2. **实践编码**:理论知识需要通过实际编程来巩固。尝试...

    JAVA设计模式(中文).chm

    同时,这份文档可能会包含示例代码和案例分析,以帮助读者更好地理解设计模式的实际运用。 总之,设计模式是软件工程中的重要工具,它们是解决问题的智慧结晶。《JAVA设计模式(中文).chm》提供了一个全面而易懂的...

    c++设计模式 设计模式精解-GoF 23种设计模式解析附C++实现源码

    ### C++设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。本文旨在深入剖析GoF(Gang of Four)提出的23种...

    Java和Android源码设计模式

    本文将深入探讨Java和Android开发中常用的设计模式,并结合实际案例进行解析,帮助读者理解和应用这些模式。 #### 设计模式中的类关系及基本原则 设计模式中的类关系主要包括依赖、关联、聚合和组合等几种形式。...

    设计模式介绍

    正如标题所言,“设计模式介绍”,本文将深入探讨设计模式的重要性和应用,特别是以C#语言为背景,通过一个具体的案例——模拟鸭子游戏“SimUDuck”——来阐述设计模式的原理和优势。 #### 设计模式的核心概念 ...

    GOF-设计模式-Design Patterns-英文原版-高清-有目录-有页码

    本章节通过一个具体的案例——文档编辑器的设计,展示了如何运用设计模式来解决实际项目中的设计问题,包括但不限于: - **文档结构设计**:考虑文档的层次结构和组织方式。 - **格式化处理**:实现文本格式化的功能...

    助你收获成功的6种思维——商务ppt模板.rar

    在PPT模板中,可能有图表或案例分析来帮助理解如何识别和处理个人局限。 2、制定计划:有效的计划能确保目标的实现。这部分内容可能包含如何设定SMART(具体、可衡量、可达成、相关、时限)目标,以及如何制定详细...

Global site tag (gtag.js) - Google Analytics