hand first 设计模式 -模板方法模式
2009-09-17 00:00:00 来源:WEB开发网模板方法模式 : 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新算法.重新定义算法中的某些步骤.
咖啡因饮料超类
Java代码
/**
* 咖啡因饮料超类
* @author panxiuyan
*
*/
public abstract class CaffeinBeverage {
/**
* 制作方法
*/
public void perareRecip() {
boilWater();
brew();
pourInCup();
if (customerWantsCondiments()) {
addCondimenes();
}
}
/**
* 冲泡
*/
public abstract void brew();
/**
* 添加相关的配料
*/
public abstract void addCondimenes();
/**
* 把水烧开
*/
public void boilWater() {
System.out.println("Boiling water");
}
/**
* 将饭料倒入杯子
*/
public void pourInCup() {
System.out.println("Pouring into cup");
}
/**
* 是否添加相关的配料--勾子程序
* @return
*/
public boolean customerWantsCondiments() {
return true;
}
}
咖啡
Java代码
public class Coffee extends CaffeinBeverage {
//重做父类的方法
@Override
public void addCondimenes() {
// TODO Auto-generated method stub
}
@Override
public void brew() {
// TODO Auto-generated method stub
}
}
咖啡中可以利用勾子方法.可以直接使用超类的.
茶
Java代码
public class Tea extends CaffeinBeverage {
@Override
public void addCondimenes() {
// TODO Auto-generated method stub
}
@Override
public void brew() {
// TODO Auto-generated method stub
}
//使用勾子方法茶不加入配料
@Override
public boolean customerWantsCondiments(){
return false;
}
}
勾子方法作用,如超类解耦.子类实行具体动作.超类确定是否执行.(别找我,我会找你的)
- ››设计模式:工厂方法模式
- ››设计模式一 - Simple Factory, Factory Method, A...
- ››设计模式重构应用---Decorator模式
- ››设计模式重构应用---Template Method模式
- ››hand first 设计模式 - 装饰者模式
- ››hand first 设计模式 - 工厂模式
- ››hand first 设计模式 - 抽象工厂模式
- ››hand first 设计模式 - 单例模式
- ››hand first 设计模式 - 命令模式
- ››hand first 设计模式 -适配器模式
- ››hand first 设计模式 -外观模式
- ››hand first 设计模式 -模板方法模式
更多精彩
赞助商链接