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

    在Servlet相关知识点中,HttpServlet类就用到了模板方法模式的思想,使得我们在HttpServlet中是需要修改doGet,doPost方法,无需对service方法进行改动。

    场景:

    比如说去饭店吃饭吃什么不知道,但是吃饭的流程是知道的。

     先定一个模板类

    package TemplateMethod;
    
    /**
     * Created by Administrator on 2018/7/6.
     */
    public abstract class BankTaskTemplate {
        public void takeNumber(){
            System.out.println("取号排队");
        }
        public abstract void transact();//子类去实现
    
        public void evaluate(){
            System.out.println("反馈评分");
        }
        public final void process(){//核心!把基本操作组合到一起,final是因为一般不让子类去修改
            this.takeNumber();
            this.transact();
            this.evaluate();
        }
    }

    具体实现类(工商银行)

    package TemplateMethod;
    
    /**
     * Created by Administrator on 2018/7/6.
     */
    public class BankOfICBC extends BankTaskTemplate {
        @Override
        public void transact() {
            System.out.println("这是工商银行的交易方式");
        }
    }

    具体实现类(中国银行)

    package TemplateMethod;
    
    /**
     * Created by Administrator on 2018/7/6.
     */
    public class BankOfChina extends BankTaskTemplate {
        @Override
        public void transact() {
            System.out.println("这是中国银行的交易方式");
        }
    }

    Test类

    package TemplateMethod;
    
    /**
     * Created by Administrator on 2018/7/6.
     */
    public class Test {
        public static void main(String[] args){
            BankOfChina bankOfChina=new BankOfChina();
            bankOfChina.process();
        }
    }
    
    

     

    可以看到结构是一样的,具体银行怎么交易的业务不一样

    代码:

    https://github.com/gowufang/DesignPattern

  • 相关阅读:
    instanceof 关键词
    类,类中成员变量,类中成员方法,方法中的局部变量,接口,接口中的方法的访问修饰符
    2.Object
    1API简介
    CMC 实例管理
    BW 转换字符空格问题
    BW ON HANA 业务模型关系与数据取数
    进步缓慢
    BO客户端安装更新,重新启动挂起。
    放弃看图,无差别筛选。
  • 原文地址:https://www.cnblogs.com/volvane/p/9274900.html
Copyright © 2011-2022 走看看