Java模版模式DEMO

模版类 

package cn.yanxiaohui.service.web.test.template;

/**
 * 模版模式
 * 	旅游的三要素:
 * 		吃
 * 		玩
 * 		休息
 * @author yanxh
 *
 */
public abstract class Tourism {
	
	public final void comeOn() {
		System.out.println("买车票出发~~~");
		eat();
		play();
		sleep();
		System.out.println("旅游结束~~~");
	}
	
	public abstract void eat();
	
	public abstract void play();
	
	public abstract void sleep();
	
}

具体实现类

package cn.yanxiaohui.service.web.test.template;

/**
 * 去大连旅游
 * @author yanxh
 *
 */
public class DaLian extends Tourism{

	@Override
	public void eat() {
		System.out.println("吃大连的特色小吃");
	}

	@Override
	public void play() {
		System.out.println("去大连看看海");
	}

	@Override
	public void sleep() {
		System.out.println("和女朋友一起共度良宵");
	}

}
package cn.yanxiaohui.service.web.test.template;

/**
 * 去北京旅游
 * @author yanxh
 *
 */
public class BeiJing extends Tourism{

	@Override
	public void eat() {
		System.out.println("北京烤鸭走起");
	}

	@Override
	public void play() {
		System.out.println("不到长城非好汉!");
	}

	@Override
	public void sleep() {
		System.out.println("嘿嘿嘿,你懂的");
	}

}

测试类 

package cn.yanxiaohui.service.web.test.template;

public class Test {
	public static void main(String[] args) {
		Tourism beiJing = new BeiJing();
		beiJing.comeOn();
		System.out.println("===========================");
		Tourism daLian = new DaLian();
		daLian.comeOn();
	}
}

结果 

 描述

首先在父类中定义模板方法的执行流程
将不固定的行为抽取为抽象方法--将来子类根据自己的需求重新编写这个行为
将模版方法设置为final不允许子类重写,否则无意义

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值