/**
* @author handw
* @version 创建时间:2009-8-11 上午11:51:30
* 类说明 模版方法
*/
public abstract class CaffeineBeverageWithHook {
/**
* 模版
* @author handw
* @time 2009-8-11上午11:59:25
*/
final void templateMethod()
{
primitiveOperation1();
primitiveOperation2();
if(concreteOpertion())
primitiveOperation3();
}
/**
* 子类有自己的实现
* @author handw
* @time 2009-8-11下午12:00:41
*/
abstract void primitiveOperation1();
/**
* 子类要自己实现
* @author handw
* @time 2009-8-11下午12:01:04
*/
abstract void primitiveOperation3();
final void primitiveOperation2() {
//实现 子类无法改变,是公用的方法
}
/**
* 钩子函数
* @author handw
* @time 2009-8-11下午12:00:02
* @return
*/
boolean concreteOpertion(){
return true;
}
}