`

深入浅出设计模式九——模板方法模式(行为型)

阅读更多

模板方法模式:

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Te m p l a t e M e t h o d 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

UML图:

示例:

在星巴兹有泡咖啡和泡茶两种饮料

他们的泡制方法如下:

看一下解析的类图:

具体代码:

package com.lwf.templatemethod;

public abstract class CoffeineBeverage {

	//模板方法:声明为final是不想子类覆盖
	final void prepareRecipe(){
		boilWater();//煮水
		brew();//用沸水泡
		pourInCup();//把泡好的饮料倒进杯子里
		addCondiments();//加调味料
	}
	
	abstract void brew();
	abstract void addCondiments();
	void boilWater(){
		System.out.println("boil Water");
	}
	void pourInCup(){
		System.out.println("Pouring into cup");
	}
}

 

package com.lwf.templatemethod;

public class Tea extends CoffeineBeverage {

	@Override
	void addCondiments() {
		System.out.println("add lemon");

	}

	@Override
	void brew() {
		System.out.println("tea brew");

	}

}

 

package com.lwf.templatemethod;

public class Coffee extends CoffeineBeverage {

	@Override
	void addCondiments() {
		System.out.println("add suger");

	}

	@Override
	void brew() {
		System.out.println("coffee brew");
	}

}

 

 

这里区分一下模板方法, 工厂方法与策略

模板方法:  是由子类决定如何实现算法中的步骤

工厂方法:  是由子类决定实例化哪个具体的类

策略:         封装可互换的行为,然后使用委托来决定要采用哪一个行为

 

分享到:
评论

相关推荐

    深入浅出设计模式四——多区域比萨加盟店生产比萨实现(抽象工厂模式)

    今天我们将深入探讨“抽象工厂模式”(Abstract Factory Pattern),它在“深入浅出设计模式四——多区域比萨加盟店生产比萨实现”中得到了应用。这个模式主要用于创建一系列相关的对象,而无需指定其具体的类。 ...

    深入浅出设计模式(中文版电子版)

    第5章GoF-BehavioralDesignPatterns行为型设计模式 167 5.1ChainofResponsibility(责任链模式) 168 5.1.1定义 168 5.1.2现实中的实例——军情的传递 169 5.1.3C#实例——采购分级审批 170 5.1.4Java实例——...

    设计模式——刘伟

    刘伟先生在讲解设计模式时,通常会深入浅出地介绍这些模式的原理、应用场景以及如何有效地在实际编程中应用它们。设计模式并不是具体的代码或库,而是一种经验总结,是软件开发人员在长期实践中形成的通用解决方案的...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...

    深入浅出WPF-刘铁猛-MVVM视频源代码,MVVM入门与提高视频对应的源代码

    **深入浅出WPF——MVVM模式解析** 在软件开发领域,Windows Presentation Foundation(WPF)是Microsoft推出的一种用于构建Windows桌面应用程序的技术,它提供了丰富的用户界面和图形渲染能力。而MVVM(Model-View-...

    设计模式的几本书

    《设计模式之禅》是一本深入浅出介绍设计模式的著作,作者以简洁易懂的方式阐述了设计模式的核心思想。书中的"禅"字,暗示了作者试图传达的设计模式的精髓——通过理解和应用设计模式,提升软件开发的禅意,即达到...

    吉林大学软件设计模式课件以及作业答案.zip

    《软件设计模式——深入解析与应用》 软件设计模式,是软件工程中的一种最佳实践,是针对特定问题的解决策略,被广泛应用于软件开发中,以提高代码的可读性、可维护性和可复用性。吉林大学的这门课程通过实例代码、...

    设计模式精解

    "设计模式精解"这个主题涵盖了这两本重要的书籍——《设计模式精解》和《深入浅出设计模式》,它们都是理解并掌握设计模式的重要资源。 首先,让我们来看看《设计模式精解》这本书可能涉及的关键知识点。设计模式...

    GOF设计模式 配合CSDN李建忠老师的视频整理而成

    《GOF设计模式——结合CSDN李建忠老师视频解析》 设计模式,作为软件工程中的重要概念,是经过无数实践者提炼出的解决常见问题的模板,它为程序员提供了一种标准化的方法来处理复杂的设计问题。GOF设计模式,全称...

    Head.First设计模式_PDF——书中源代码

    《Head First设计模式》是一本深受开发者喜爱的设计模式书籍,以其独特的图文并茂方式深入浅出地讲解了软件设计中的核心概念。这本书旨在帮助初学者和有经验的开发者更好地理解和应用设计模式,提升代码的可读性、可...

    深入浅出MFC——MFC初级入门(繁体版)

    ### 深入浅出MFC——MFC初级入门(繁体版) #### MFC编程基础知识 本章节将深入浅出地介绍MFC的基础概念,为读者提供一个全面且易于理解的学习路径。以下是对该书目录及部分内容所涵盖的知识点进行的详细解析。 #...

    java设计模式+算法

    "深入浅出设计模式(中文版)"这本书可能详细介绍了设计模式的基本概念,包括创建型、结构型和行为型模式。创建型模式如单例、工厂方法和抽象工厂,主要关注对象的创建;结构型模式如适配器、装饰器和代理,关注如何...

    深入浅出javascript pdf与实例

    "深入浅出JavaScript" 是一套专门针对JavaScript初学者和进阶者设计的学习资料,旨在帮助读者全面理解这门语言,并通过实例加深对概念的理解。这本书的中文版——"Head First JavaScript",以其独特的视觉和互动式...

    深入浅出话VC++(2)——MFC的本质.pdf

    【深入浅出话VC++(2)——MFC的本质】 MFC,全称为Microsoft Foundation Class Library,是由微软公司为简化Windows平台下的C++应用程序开发而设计的一个类库。MFC将复杂的Windows API封装成C++类,使得程序员可以...

    HEAD_FIRST设计模式.zip

    本书深入浅出地介绍了23种GOF(GoF,Gamma, Helm, Johnson, Vlissides)经典设计模式,包括创建型模式(如单例模式、工厂模式、抽象工厂模式、建造者模式和原型模式)、结构型模式(如适配器模式、桥接模式、装饰器...

Global site tag (gtag.js) - Google Analytics