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 }

    运行结果:

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

  • 相关阅读:
    系列文章--突袭HTML5之Javascript
    arguments对象的实例使用
    Javascript常用的设计模式详解
    javascript日历插件
    系列文章--AJAX技术系列总结
    零基础汇编学习笔记
    VC++6.0注释快捷键的添加使用
    VC6++常用快捷键
    汇编题目:编写包含多个功能子程序的中断例程
    汇编题目:按A键,当松开的时显示字母A
  • 原文地址:https://www.cnblogs.com/penguin1024/p/11809644.html
Copyright © 2011-2022 走看看