首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

模板方法形式(Head first)

2012-07-22 
模板方法模式(Head first)有人爱喝茶,有人爱喝咖啡,因为两者都含有咖啡因。?咖啡的冲泡方法: ? ? ? ? ? ?茶

模板方法模式(Head first)

有人爱喝茶,有人爱喝咖啡,因为两者都含有咖啡因。

?

咖啡的冲泡方法: ? ? ? ? ? ?茶的冲泡法:

1:把水煮沸 ? ? ? ? ? ? ? ? ? ?1:把水煮沸

2:用沸水冲泡咖啡 ? ? ? ? ?2:用沸水浸泡茶叶

3:把咖啡倒进杯子 ? ? ? ? ?3:把茶倒进杯子

4:加糖和牛奶 ? ? ? ? ? ? ? ?4:加柠檬

?

?

观察上面的步骤发现第1步和第3步是一样的,可以将这两步抽象出来,放到上一层的抽象类中实现。

将第2步和第4步定义成抽象方法,由具体子类实现。最后在抽象类中定义一个方法,调用这4个方法。

?

?

可以在模板方法中定义一个“钩子”

可以让子类有能力对算法的不同点进行挂钩,要不要挂钩,由子类决定。

例如可以在上面例子的抽象类中定义一个isCustomerWantsCondiments方法

默认返回true

子类可以覆盖这个方法,在超类的prepareRecipe方法中可以这样写

if(isCustomerWantsCondiments()){

??addCondiments();//加调料

}

?

模板方法主要用于框架的实现。

热点排行