【设计模式】模板方法模式

这篇具有很好参考价值的文章主要介绍了【设计模式】模板方法模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

模板方法模式

1. 什么是模板方法

模板方法模式:定义一个操作中的算法骨架(父类),而将一些步骤延迟到子类中。
模板方法使得子类可以不改变一个算法的结构来重定义该算法的

2. 什么时候使用模板方法

实现一些操作时,整体步骤很固定,但是呢。就是其中一小部分需要改变,这时候可以使用模板方法模式,将容易变的部分抽象出来,供子类实现。

3. 实际开发中应用场景哪里用到了模板方法

其实很多框架中都有用到了模板方法模式
例如:数据库访问的封装、Junit单元测试、servlet中关于doGet/doPost方法的调用等等

4. 现实生活中的模板方法

例如:

去餐厅吃饭,餐厅给我们提供了一个模板就是:看菜单,点菜,吃饭,付款,走人
(这里 “点菜和付款” 是不确定的由子类来完成的,其他的则是一个模板。)

5.代码实现模板方法模式

先定义一个模板。把模板中的点菜和付款,让子类来实现。文章来源地址https://www.toymoban.com/news/detail-720902.html

package com.lijie;

//模板方法
public abstract class RestaurantTemplate {

	// 1.看菜单
	public void menu() {
		System.out.println("看菜单");
	}

	// 2.点菜业务
	abstract void spotMenu();

	// 3.吃饭业务
	public void havingDinner(){ System.out.println("吃饭"); }

	// 3.付款业务
	abstract void payment();

	// 3.走人
	public void GoR() { System.out.println("走人"); }

	//模板通用结构
	public void process(){
		menu();
		spotMenu();
		havingDinner();
		payment();
		GoR();
	}
}


  1. 具体的模板方法子类 1
package com.lijie;

public class RestaurantGinsengImpl extends RestaurantTemplate {

    void spotMenu() {
        System.out.println("人参");
    }

    void payment() {
        System.out.println("5快");
    }
}

  1. 具体的模板方法子类 2
package com.lijie;

public class RestaurantLobsterImpl  extends RestaurantTemplate  {

    void spotMenu() {
        System.out.println("龙虾");
    }

    void payment() {
        System.out.println("50块");
    }
}

  1. 客户端测试
package com.lijie;

public class Client {

    public static void main(String[] args) {
        //调用第一个模板实例
        RestaurantTemplate restaurantTemplate = new RestaurantGinsengImpl();
        restaurantTemplate.process();
    }
}

到了这里,关于【设计模式】模板方法模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 设计模式(7)模板方法模式

    一、定义: 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。

    2024年02月12日
    浏览(24)
  • Java设计模式 (一) 模板方法设计模式

    什么是模板方法设计模式? 模板方法设计模式是一种行为型设计模式,它定义了一个算法的骨架,并将一些步骤的具体实现延迟到子类中。模板方法模式可以帮助确保在算法的不同部分中保持一致性,同时也允许子类根据需要进行具体实现。 模板方法模式的关键特点包括:

    2024年02月12日
    浏览(31)
  • 设计模式之八:模板方法模式

    泡咖啡和泡茶的共同点: 把水煮沸 沸水冲泡咖啡/茶叶 冲泡后的水倒入杯子 添加糖和牛奶/柠檬 在上面的代码种,prepareRecipe就是一个模板方法。 模板方法 定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现(依赖子类提供某些或所有步骤的实现,父类拥有并保护

    2024年02月11日
    浏览(30)
  • 设计模式【行为型】-- 模板方法模式

          模板方法模式是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤的具体实现延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板方法模式基于一个抽象类或接口定义算法的骨架,该骨架由一个模板

    2024年02月16日
    浏览(33)
  • js设计模式:模板方法模式

    父类定义一个整体的模板框架,将具体的方法行为定义到子类中。 模板方法主要是封装行为中的固定部分,同时允许子类对方法进行扩展

    2024年02月22日
    浏览(29)
  • 设计模式(六):模板方法模式(行为型模式)

    Template Method,模板方法:定义一个操作中的算法的骨架,而将一 些步骤延迟到子类中,TemplateMethod使得子类可以不改变一个算法的结构即 可以重定义该算法得某些特定步骤。 举例说明 奶茶制作过程,第一步加牛奶,第二步加糖,第三步加其他配料。第三步对于不同口味的奶

    2024年02月21日
    浏览(33)
  • 经典的设计模式13——模板方法模式

    开始11个属于行为型模式的复习。 用户登录控制功能用模板方法实现。 定义: 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 结构: 抽象类(abstract):负责给出一个算法的轮廓和骨架

    2024年02月08日
    浏览(29)
  • C++设计模式22:模板方法模式

    C++ 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式

    2024年02月02日
    浏览(26)
  • 14.python设计模式【模板方法模式】

    内容:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法某特定步骤。 角色: 抽象类(AbstractClass):定义抽象的原子操作(钩子操作);实现一个模板方法作为算法的骨架。 具体类(ConcreteClass):

    2024年02月15日
    浏览(27)
  • C++设计模式之 模板方法模式

    【声明】本题目来源于卡码网(题目页面 (kamacoder.com)) 【提示:如果不想看文字介绍,可以直接跳转到C++编码部分】         --什么是模板方法模式(第18种设计模式)         模板方法模式 (Template Method Pattern)是⼀种 行为型设计模式 , 它定义了⼀个算法的骨架,将 ⼀些

    2024年01月21日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包