zoukankan      html  css  js  c++  java
  • java设计模式案例详解:代理模式

      代理模式就是用一个第三者的身份去完成工作,其实际意义跟字面意思其实是一样的,理解方式有很多,还是例子直观.

      本例的实现类是实现买票功能,实际应用想要添加身份验证功能,利用代理模式添加验证步骤.上例子:

    package com.learn.proxy.proxyModel;
    
    /**
     * 初始功能接口,买票
     * @author garfield
     *
     */
    public interface Tickets {
        public abstract void buy();
    }
    package com.learn.proxy.proxyModel;
    
    /**
     * 真实实现购买票代码
     * @author garfield
     *
     */
    public class RealBuy implements Tickets{
    
        @Override
        public void buy() {
            System.out.println("pay money");
            
        }
    
    }
    package com.learn.proxy.proxyModel;
    
    
    /**
     * 代理购买,由于需要在买票之前进行身份验证,所以增加代理功能
     * @author garfield
     *
     */
    public class ProxyBuy implements Tickets{
        
        private Tickets tickets;
        
        ProxyBuy(Tickets tickets) {
            // TODO Auto-generated constructor stub
            this.tickets = tickets;
        }
    
        @Override
        public void buy() {
            getAuthority();
            this.tickets.buy();
        }
        
        public void getAuthority(){
            System.out.println("get authority");
        }
    
    }
    package com.learn.proxy.proxyModel;
    
    /**
     * 运行进行购买
     * @author garfield
     *
     */
    public class BuyTickets {
        public static void main(String[] args) {
            new ProxyBuy(new RealBuy()).buy();
        }
    
    }

      运行结果:

    get authority
    pay money

      done

  • 相关阅读:
    总结报告的感想
    第14、15週PTA題目的處理
    PTA題目的處理(三)
    PTA题目的處理(四)
    PTA題目的處理(二)
    PTA題目的處理(一)
    國慶和中秋的學習成果
    剛進入大學一個月的總結和作業
    【接口平台】too many values to unpack
    【接口平台】生成静态模拟数据
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/5531935.html
Copyright © 2011-2022 走看看