`

模板方法模式实践小结

阅读更多

模板方法模式用于固定算法的骨架,让具体算法在子类中扩展,类图如下:



最显著的特点是模板方法templateMethod()已经不需要在子类中覆盖

Head First设计模式这本书中对这个算法有深入分析,可以参考http://mynote.iteye.com/blog/1553604

 

接下去要讲的是项目中对这个模式的应用.首先有个ProductChecker的父类,定义了算法的模板:

package com.jingshou.partern;

public abstract class ProductChecker {
	protected boolean checkDB = false;
	
	protected void executeCheck(){
		login();
		checkURL();
		if (checkDB)
			checkDBCon();
		checkOhter();
		
	}
	
	protected void login(){
		System.out.println("Login to System.");
	}
	
	protected abstract void checkDBCon();
	protected abstract void checkURL();
	protected abstract void checkOhter();
}

 

 当我们有十几个Product需要做检查的时候,让每个子Product去继承ProductChecker,并且在必要的时候覆盖checkUrl(), checkDBCon(), checkOther()方法.以应对不同的Product使用不同的方法去检查系统

 

总结:

  • 父类定义了算法的骨架,但是父类可以不是抽象类
  • 子类去实现算法的非骨架部分
  • 必要的时候引入钩子(checkDB),增加算法的灵活性

本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2017651

  • 大小: 25.8 KB
0
0
分享到:
评论

相关推荐

    模板方法模式(jzkangta).rar

    总结起来,模板方法模式是一种强大的设计模式,它允许我们定义一个算法的结构,同时允许子类在不破坏整体结构的前提下,对算法的特定步骤进行定制。通过这种方式,我们能够实现代码复用,提高程序的灵活性,并且保持...

    数据库访问层的实现(一)——模板方法模式

    总结来说,利用模板方法模式实现数据库访问层,可以标准化数据操作流程,提高代码复用性,同时允许灵活地扩展不同的数据库访问策略。结合实际项目需求,开发者可以根据此模式构建稳定、高效的数据库访问层,提升软件...

    设计模式之策略模式与模板模式.rar

    总结来说,策略模式和模板模式都是为了提高代码的灵活性和可扩展性。策略模式通过将算法封装在独立的类中,使得算法可以根据需求动态选择;而模板模式则是通过定义一个操作的通用框架,让子类去填充具体实现,以此...

    C#面向对象设计模式纵横谈(25):设计模式总结

    13. 模板方法模式:模板方法模式定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 14. 观察者模式:观察者模式定义了对象之间的一对多依赖...

    qt5编写的使用模板类工厂模式画图程序

    总结,"qt5编写的使用模板类工厂模式画图程序"是一个很好的实践,它演示了如何利用工厂模式和模板视图在Qt5环境中有效地创建和管理图形界面元素。这样的设计不仅提高了代码的可复用性和可扩展性,还使得图形场景的...

    用工厂方法模式重构简易计算器 源代码+实验报告

    总结,本项目通过工厂方法模式重构简易计算器,展示了这种模式在处理多类型对象创建问题时的灵活性和可扩展性。这种方法使得代码结构清晰,易于维护,同时也为添加新功能提供了便利。对于学习设计模式和实践面向对象...

    spring模板方法.zip

    模板方法设计模式是面向对象设计模式的一种,它在Spring框架中被广泛应用于简化代码和实现可扩展性。在Spring Boot中,模板方法模式通常体现在各种模板类中,如RestTemplate、JdbcTemplate等,它们提供了一种标准的...

    Delphi模式编程第一分卷

    第25章 模板方法模式(Template Method) 25.1 模式解说 25.2 结构与用法 25.2.1 模式结构 25.2.2 代码模板 25.2.3 问题讨论 25.3 范例与实践 25.3.1 模板方法在离线数据库系统中的应用 25.3.2 范例小结 第...

    策略模式工厂方法模式观察者模式

    在软件开发中,设计模式是经验丰富的开发者们总结出的解决常见问题的模板或最佳实践。这些模式在不同场景下可以被复用,以提高代码的可读性、可维护性和可扩展性。本资源主要涵盖了三种经典的设计模式:策略模式、...

    基于Java设计模式的课程项目总结.zip

    模板方法模式 责任链模式 状态模式 观察者模式 备忘录模式 迭代器模式 访问者模式 中介者模式 解释器模式 项目结构 项目代码组织在多个包中,每个包对应一种设计模式或相关功能。以下是一些关键包的简要...

    Delphi模式编程第二分卷

    第25章 模板方法模式(Template Method) 25.1 模式解说 25.2 结构与用法 25.2.1 模式结构 25.2.2 代码模板 25.2.3 问题讨论 25.3 范例与实践 25.3.1 模板方法在离线数据库系统中的应用 25.3.2 范例...

    精美动态实习总结PPT模板.pptx

    这份实习总结PPT模板主要展示了实习生在马克华菲型格品牌的实习经历,涵盖了品牌知识、店铺陈列、仓库管理、销售和营运管理等多个方面。马克华菲是一家以原创设计为主的中国时装公司,拥有多个子品牌,面向不同年龄...

    java设计模式

    10.3 模板方法模式的应用 10.4 模板方法模式的扩展 10.5 最佳实践 第11章 建造者模式 11.1 变化是永恒的 11.2 建造者模式的定义 11.3 建造者模式的应用 11.4 建造者模式的扩展 11.5 最佳实践 第12章 代理模式 12.1 ...

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

    在软件开发中,设计模式是一种经验总结,是解决常见问题的最佳实践。本篇文章将深入探讨几种经典的设计模式:模板方法模式、外观模式、代理模式、装饰器模式、桥模式、工厂方法模式以及组合模式。 首先,模板方法...

    设计模式学习模板demo

    设计模式并不是具体的代码或库,而是一种经验的总结,它描述了在特定上下文中如何设计和实现类或对象。设计模式的学习对于提升软件的可维护性、扩展性和复用性至关重要。 在“设计模式学习模板demo”中,我们可以...

    李建忠 C#面向对象设计模式纵横谈(25):设计模式总结

    3. 行为型模式:这类模式关注对象间的交互和职责分配,包括策略(Strategy)、模板方法(Template Method)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录...

    体育实习总结报告模板.pdf

    【体育实习总结报告模板】 体育实习是技术应用的重要实践环节,它不仅要求实习生具备扎实的体育理论知识,更需要能够灵活运用这些知识去适应不同学生群体的教学需求。在这份实习总结报告中,实习生深入探讨了在实习...

    java中常用设计模式总结心得

    在Java编程领域,设计模式是解决常见问题的模板,它们是经过时间和实践验证的最佳实践。以下是对Java中常用设计模式的详细解释: 1. **单例模式**:单例模式确保一个类只有一个实例,并提供一个全局访问点。这种...

    护士实习总结报告与体会总结报告ppt模板.docx

    【标签】:虽然没有明确的标签,我们可以推断该文档可能涉及以下关键词:护士实习、总结报告、PPT模板、个人发展、医疗实践、专业技能、团队合作、自我提升。 【部分内容】:在实习期间,护士会经历各种挑战,这些...

    23种软件设计模式总结

    设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图,可以被反复使用,以提高代码的可读性、可维护性和灵活性。在Java编程中,23种经典的设计模式被广泛认可并应用,这些模式分为三大...

Global site tag (gtag.js) - Google Analytics