模板模式(7)
来源:互联网 发布:泰国买衣服便宜 知乎 编辑:程序博客网 时间:2024/06/14 14:39
模板模式定义:封装了一个算法步骤,并允许子类为一个或多个步骤方法提供实现。模板模式可以使子类再不改变算法结构的情况下,重新定义算法中的某些步骤。
类图如下:
说明:模板模式就好比我们生活中的做菜,做菜的步骤是一定的:准备食材-》烹饪-》加佐料-》上桌,我们将做菜通用步骤抽象成父类,父类有一个统筹模板算法步骤的函数以及多个步骤方法,具体做什么菜则是继承父类的子类。子类可以重写一个或多个算法步骤。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public
abstract
class
Cook {
//做菜算法
public
void
makeFood(){
this
.prepare();
//准备食材
this
.cooking();
//烹饪
this
.addCondiment();
//加佐料
this
.serving();
//上菜
}
public
abstract
void
prepare();
public
void
cooking(){
System.out.println(
"简单烹饪中"
);
}
public
abstract
void
addCondiment();
public
void
serving(){
System.out.println(
"上菜咯"
);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//红烧鱼做法
public
class
BraisedFish
extends
Cook {
@Override
public
void
prepare() {
System.out.println(
"买海鱼,刷鳞,洗净,切好葱,姜,蒜,辣椒。把鱼用少许盐,料酒,姜丝,白胡椒粉腌制10分钟"
);
}
@Override
public
void
cooking() {
System.out.println(
"锅里倒油煸香葱姜蒜。炒香后然后再加入豆豉和豆瓣酱继续炒香。把腌制好的鱼放入锅内。倒入适量的清水,加入盐半勺,白糖半勺,料酒,盖上锅盖慢烧。"
);
}
@Override
public
void
addCondiment() {
System.out.println(
"加入辣椒 葱 姜 蒜 盐 料酒 豆瓣酱 豆豉 白糖 白胡椒粉等酱料"
);
}
}
1
2
3
4
5
public
class
Main {
public
static
void
main(String[] args) {
new
BraisedFish().makeFood();
}
}
0 0
- 模板模式(7)
- 设计模式(7)-模板方法模式
- 设计模式(7):模板方法模式
- 设计模式(7)-模板(从事务处理应用的模板)
- 模板模式(Template)
- 计数模式 (模板)
- (转)设计模式(7):模板方法模式
- 设计模式(7)模板模式--行为型
- PHP设计模式-模板模式(模板方法模式)
- PHP设计模式-模板模式(模板方法模式)
- 模板模式(Template Pattern)
- TemplateMethod(模板方法模式)
- 模板模式实例(java)
- 模板模式(学习笔记)
- 模板方法模式(TemplateMethod)
- 模板方法模式(TemplateMethod)
- (5)模板方法模式
- (六)模板方法模式
- ft难点记录
- 北邮OJ 102. 最远距离 北邮2012网研院复试上机题
- 几种简单的排序
- TCP/IP
- 从Storm学习集群管理
- 模板模式(7)
- MySQL查询:查询一个表中类别字段中Max()最大值对应的记录
- Struts2从一个action转到另一个action的两种方法
- phpstorm小总结
- ft上线蛋疼问题
- nginx中的if嵌套
- 细说Angular ng-class
- mysql心得
- hdoj--5615--Jam's math problem(数学)(交叉相乘)