zoukankan      html  css  js  c++  java
  • 模板方法模式

      模板方法模式:


    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 }

    运行结果:

    用户登录
    购买回力_足球鞋一双!!!
    使用现金支付
    
    用户登录
    购买阿迪达斯_秋裤一条!
    使用银联卡支付

  • 相关阅读:
    转载C#基础概念二十五问
    C# 文件路径、目录、I/O常见操作汇总
    最简单lru缓存及改进版本(java备忘)
    我的游戏观
    寂静岭 破碎的记忆
    居然又回来了,CSDN博客太不方便了
    Game Physics Engine Development 粗略翻译
    就这么定了
    绘画 程序 人生
    也谈Maxscript
  • 原文地址:https://www.cnblogs.com/penguin1024/p/11809644.html
Copyright © 2011-2022 走看看