设计模式之模板模式

模板模式

在模板设计模式中,父类定义算法结构代码,子类实现逻辑的细节

1、模板设计模式的定义:

定义一个操作中算法的骨架,而将一些步骤延续到子类中,模板方法使得子类可以不改变算法的机构即可重新定义该算法的某些特定步骤。

定义中描述的是,做一件事情,有一些固定的步骤,但是每个步骤的具体实现细节根据场景不同实现的逻辑会不同。可以在父类中将事情的固定步骤定义下来,然后再子类中将这些具体的步骤实现。

2、用法实例:

比如我们平时叫外卖,可以分为三个步骤(1)下订单、(2)取外卖、(3)评价反馈。这三个步骤就是整个事件的算法骨架。而每一个步骤怎么做,根据每个人的情况不同会有不同的做法。

代码实现:

(1、首先定义一个父类定义算法的骨架:

public abstract class TakeOutTemplate {

	/**
	 * 这个过程的骨架
	 */
	protected final void doTakeOut() {
		this.older();
		this.takeGoods();
		this.evaluation();
	}

	/**
	 * 下订单
	 */
	public abstract void older();

	/**
	 * 取餐
	 */
	public abstract void takeGoods();

	/**
	 * 评价
	 */
	public abstract void evaluation();

}

(2)、用美团软件实现叫外卖的具体步骤

public class MeiTuanTakeout extends TakeOutTemplate {

	@Override
	public void older() {
		System.out.println("使用美团平台下单");
	}

	@Override
	public void takeGoods() {
		System.out.println("跟美团外卖员取外卖");
	}

	@Override
	public void evaluation() {
		System.out.println("给美团商家和外卖员评价");
	}
}

(3)、用饿了么软件实现叫外卖的具体步骤

public class HungryTakeOut extends TakeOutTemplate {

	@Override
	public void older() {
		System.out.println("使用饿了么平台下单");
	}

	@Override
	public void takeGoods() {
		System.out.println("跟饿了么员工取外卖");

	}

	@Override
	public void evaluation() {
		System.out.println("给饿了么商家和外卖员评价");

	}
}

(4)、测试叫外卖

public class TakeOutTemplateTest {

	public static void main(String[] args) {

		TakeOutTemplate meituan = new MeiTuanTakeout();
		meituan.doTakeOut();

		System.out.println("************************");

		TakeOutTemplate hungry = new HungryTakeOut();
		hungry.doTakeOut();

	}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值