模板方法模式

  模板方法模式:

 

 


 

1. 购物 (抽象类)

 1 package com.monkey1024.service;
 2 
 3 public abstract class Shopping {
 4     
 5     // 模板方法
 6         public void buyGoods() {
 7             userLogin();
 8             buy();
 9             pay();
10         }
11 
12         // 子类不能重写的方法
13         public final void userLogin() {
14             System.out.println("用户登录");
15         }
16         
17         // 子类必须实现
18         public abstract void buy();
19         
20         // 钩子方法
21         public void pay() {
22             System.out.println("使用银联卡支付");
23         }
24     }
25     
26     

 

2. 买衣服

 1 package com.monkey1024.service;
 2 
 3 // 购买衣服
 4 public class ClothesShopping extends Shopping {
 5 
 6      @Override
 7     public void buy() {
 8          System.out.println("购买阿迪达斯_秋裤一条!");
 9     }
10     
11 }

 

 

 

3.买鞋

 

package com.monkey1024.service;

// 买鞋子
public class ShoesShopping extends Shopping {

    @Override
    public void buy() {
        System.out.println("购买回力_足球鞋一双!!!");

    }

    @Override
    public void pay() {
         System.out.println("使用现金支付");
    }
    
    
    

}

 

 

4. 测试类

 1 package com.monkey1024.test;
 2 
 3 import com.monkey1024.service.ClothesShopping;
 4 import com.monkey1024.service.ShoesShopping;
 5 import com.monkey1024.service.Shopping;
 6 
 7 public class MyTest {
 8 
 9     public static void main(String[] args) {
10         
11         // 买鞋
12         Shopping shoesShopping= new ShoesShopping();
13         shoesShopping.buyGoods();
14 15         System.out.println();
16         // 买衣服
17         Shopping clothesShopping= new ClothesShopping();
18         clothesShopping.buyGoods();
19 20         
21     }
22 }

 

 

运行结果:

用户登录
购买回力_足球鞋一双!!!
使用现金支付

用户登录
购买阿迪达斯_秋裤一条!
使用银联卡支付

 

 


posted @ 2019-11-07 00:23  小茅棚  阅读(113)  评论(0编辑  收藏  举报