HeadFirst设计模式_读书笔记_008_模板方法

模板方法模式:在一个方法中定义了一个算法的骨架,而将实现延迟到子类中。模板方法使得子类在不改变算法结构的同时提供自己的特定实现。



 

public abstract class Templet {
	
	public void prepareDinner()
	{
		buyGroceries();
		washgroceries();
		choppingVegetables();
		cook();
	}
	
	abstract void buyGroceries();

	public void washgroceries() 
	{
		System.out.println("洗菜了~~");
	}
	
	public void choppingVegetables()
	{
		System.out.println("切菜了~~");
	}
	
	abstract void cook();
}

 

public class Fish extends Templet{

	@Override
	void buyGroceries() {
		System.out.println("买了一条大活鱼");
	}

	@Override
	void cook() {
		System.out.println("鲫鱼豆腐汤出锅啦!!");
	}

}

 

public class Beef extends Templet{

	@Override
	void buyGroceries() {
		System.out.println("一斤牛肉,两斤青椒");
	}

	@Override
	void cook() {
		System.out.println("好大一盘青椒牛肉啊~~");
	}

}

 Templet类里面定义了一个做菜的算法,步骤就是1.买菜 2.洗菜 3.切菜 4.炒菜 默认2,3两个步骤是可以共享的,反正所有的菜都是用水洗用刀切嘛~~ 1,4在模板类里面提供的是抽象的方法,具体买什么菜,怎么做得有具体的菜式决定。

  • 大小: 3.2 KB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值