模板模式(7)

模板模式定义:封装了一个算法步骤,并允许子类为一个或多个步骤方法提供实现。模板模式可以使子类再不改变算法结构的情况下,重新定义算法中的某些步骤。


类图如下:



说明:模板模式就好比我们生活中的做菜,做菜的步骤是一定的:准备食材-》烹饪-》加佐料-》上桌,我们将做菜通用步骤抽象成父类,父类有一个统筹模板算法步骤的函数以及多个步骤方法,具体做什么菜则是继承父类的子类。子类可以重写一个或多个算法步骤。


代码如下:

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();
     }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值