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

  • 相关阅读:
    shell script入门
    perl环境配置以及Eclipse安装perl开发插件
    python注释
    Python中的sorted函数以及operator.itemgetter函数
    python 字典items和iteritems
    Python 字典(Dictionary) get()方法
    python numpy sum函数用法
    python numpy argsort函数用法
    python tile函数用法
    Shell之date用法
  • 原文地址:https://www.cnblogs.com/volvane/p/9274900.html
Copyright © 2011-2022 走看看