zoukankan      html  css  js  c++  java
  • JAVA设计模式之【模板方法模式】

    模板方法模式
    	提高代码的复用性
    	把常用的基本方法放入父类中
    	强调一种流程步骤
    	角色
    		抽象类
    			抽象方法
    			具体方法
    			钩子方法
    				空方法
    				通过bool控制
    		具体类
    
    

    看例子

    1.银行模板类

    package TemplateMethod;
    
    /**
     * Created by Jiqing on 2016/10/31.
     */
    public abstract class BankTemplateMethod
    {
        public void takeNumber()
        {
            System.out.println("取号排队。");
        }
    
        public abstract void transact();
    
        public void evaluate()
        {
            System.out.println("反馈评分。");
        }
    
        public void process()
        {
            this.takeNumber();
            this.transact();
            this.evaluate();
        }
    }
    

    2.具体业务

    package TemplateMethod;
    
    /**
     * Created by Jiqing on 2016/10/31.
     */
    public class Deposit extends BankTemplateMethod
    {
        public void transact()
        {
            System.out.println("存款");
        }
    }
    
    package TemplateMethod;
    
    /**
     * Created by Jiqing on 2016/10/31.
     */
    public class Transfer extends BankTemplateMethod
    {
        public void transact()
        {
            System.out.println("转账");
        }
    }
    
    package TemplateMethod;
    
    /**
     * Created by Jiqing on 2016/10/31.
     */
    public class Withdraw extends BankTemplateMethod
    {
        public void transact()
        {
            System.out.println("取款");
        }
    }
    
    

    4.客户端

    
    package TemplateMethod;
    
    /**
     * Created by Jiqing on 2016/10/31.
     */
    public class Client
    {
        public static void main(String a[])
        {
            BankTemplateMethod bank;
            bank=new Deposit();
            bank.process();
            System.out.println("---------------------------------------");
            bank = new Transfer();
            bank.process();
    
        }
    }
    

    结果:

    取号排队。
    存款
    反馈评分。
    ---------------------------------------
    取号排队。
    转账
    反馈评分。
    

  • 相关阅读:
    OpenJDK与HashMap
    跨终端Web之Hybrid App
    Java日志性能
    openstack
    Hadoop下各技术应用场景
    股票基金看哪些书
    Java内存模型的历史变迁
    浅谈JS DDoS攻击原理与防御
    清除Windows 10的文件夹浏览痕迹
    linux删除文件后没有释放空间
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6014535.html
Copyright © 2011-2022 走看看