模板方法模式(模板模式)——钩子方法

豆浆制作问题

编写制作豆浆的程序,说明如下:

  1. 制作豆浆的流程选材—>添加配料—>浸泡—>放到豆浆机打碎

  2. 通过添加不同的配料,可以制作出不同口味的豆浆

  3. 选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的

  4. 请使用模板方法模式完成(说明:因为模板方法模式,比较简单,很容易就想到这个方案,因此就直接使用,不再使用传统的方案来引出模板方法模式)

模板方法模式基本介绍

基本介绍

  1. 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。

  2. 简单说,模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤

  3. 这种类型的设计模式属于行为型模式。

模板方法模式原理类图

模板方法模式的原理类图

在这里插入图片描述

  • 对原理类图的说明-即(模板方法模式的角色及职责)
  1. AbstractClass 抽象类, 类中实现了模板方法(template),定义了算法的骨架,具体子类需要去实现其它的抽象方法operationr2,3,4

  2. ConcreteClass 实现抽象方法operationr2,3,4, 以完成算法中特点子类的步骤

模板方法模式解决豆浆制作问题

  1. 应用实例要求
    编写制作豆浆的程序,说明如下:
    制作豆浆的流程选材—>添加配料—>浸泡—>放到豆浆机打碎
    通过添加不同的配料,可以制作出不同口味的豆浆
    选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的(红豆、花生豆浆。。。)
  2. 思路分析和图解(类图)
    在这里插入图片描述
  3. 代码实现
    客户端
public class Client {
   

	public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		//制作红豆豆浆
		
		System.out.println("----制作红豆豆浆----");
		SoyaMilk redBeanSoyaMilk = new RedBeanSoyaMilk();
		redBeanSoyaMilk.make();
		
		System.out.println("----制作花生豆浆----");
		SoyaMilk peanutSoyaMilk = new PeanutSoyaMilk();
		peanutSoyaMilk.make();
	}

}
  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值