设为首页 加入收藏

TOP

9.模板方法模式
2017-10-10 12:34:53 】 浏览:7939
Tags:模板 方法 模式

模板方法模式其实就是将相似步骤的类抽取相同的部分到抽象类中,不同部分在抽象类中定义为抽象方法,让具体类去实现。

以泡茶和泡咖啡作为例子。他们都需要煮水,泡茶或咖啡,过滤,加柠檬或糖

1.抽象出来的类

//把相同的煮水和过滤抽出来,至于泡的是茶还是咖啡,加的是柠檬还是糖则泛化为抽象
public abstract class CaffeineBeverage {
	final void prepareRecipe(){
		boilWater();
		brew();
		pourInCup();
		addCondiments();
	}

	abstract void addCondiments();

	 void pourInCup() {
		// TODO Auto-generated method stub
		System.out.println("Pouring in cup");
	}

	abstract void brew();

	private void boilWater() {
		// TODO Auto-generated method stub
		System.out.println("Boiling water");
	}
}

2.具体实现的类

public class Coffee extends CaffeineBeverage {

	@Override
	void addCondiments() {
		// TODO Auto-generated method stub
		System.out.println("Adding sugar and milk");
	}

	@Override
	void brew() {
		// TODO Auto-generated method stub
		System.out.println("dripping coffee through filter");
	}

}
public class Tea extends CaffeineBeverage{

	@Override
	void addCondiments() {
		// TODO Auto-generated method stub
		System.out.println("Adding Lemon");
	}

	@Override
	void brew() {
		// TODO Auto-generated method stub
		System.out.println("Steeping the tea");
	}

}

  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇二十三种设计模式之单例模式 下一篇如何大幅提升web前端性能之看teng..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目