zoukankan      html  css  js  c++  java
  • 再战设计模式(十六)之行为型-模板方法模式

    模板方法模式

     举例:

      平时我们去吃饭.

      1.去饭店

      2.点餐

      3.结账

    但是我们不知道要吃什么.中间是是不知道的.

    介绍:

      模板方法模式是编程中经常用到的模式,它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现,这样新的子类就可以在不改变一个算法结构的前提下重新定义该算法的某些步骤

    核心:
      处理某个流程的代码已经具备,但是某个节点的代码暂时不能确定,因此,我们采用工厂方法模式,将这个节点代码实现转移给子类完成,就是:处理的步骤父类中定义好,具体的实现延迟到子类中定义

    类图:

    代码实现:

    public abstract class BankTemplateMethod {
    
        //模板方法
        public void takeNumber(){
            System.out.println("取号排队");
    
        }
    
        public abstract void transact();//具体交易
        public void leave(){
            System.out.println("离开");
        }
    
    
        public final void process(){
            this.takeNumber();
            this.transact();
            this.leave();
        }
    
    }
    
    
    public class DrawMoney extends BankTemplateMethod {
        @Override
        public void transact() {
            System.out.println("i want draw money");
        }
    }
        
    
    public class Main {
        public static void main(String[] args) {
            BankTemplateMethod bankTemplateMethod =  new DrawMoney();
            bankTemplateMethod.process();
            BankTemplateMethod bank2 = new BankTemplateMethod() {
                @Override
                public void transact() {
                    System.out.println("我要存钱");
                }
            };
            bank2.process();
        }
    }

    总结:

    这个模式很简单.我就不说什么了

  • 相关阅读:
    decode函数
    下载
    sed命令
    JAVA中常用IO流类:FileInputStream和FileOutputStream
    /etc/sysconfig/i18n文件详解
    myeclipse注册方法
    Python标准库os的使用方法
    Python三方库PyAutoGUI的使用方法
    php获取文件创建时间、修改时间
    PHP获取今天、昨天、明天的日期
  • 原文地址:https://www.cnblogs.com/bj-xiaodao/p/10887465.html
Copyright © 2011-2022 走看看