zoukankan      html  css  js  c++  java
  • 代理模式Proxy

    代理模式:为其他对象提供一种代理以控制对这个对象的访问。

    所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。

    package com.qinsoft.design;
    
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    
    
    public class ProxyClient
    {
        
        public static void main(String[] args)
        {
            //静态代理
    //        Passenger real = new RealPassenger();
    //        Passenger proxy = new StaticProxy(real);
    //        proxy.buyTicket();
            
            //动态代理
            DynamicProxy real = new DynamicProxy();
            Passenger passenger = (Passenger) real.obj(new RealPassenger());
            passenger.buyTicket();
        }
    }
    /**
     * 买票接口
     */
    interface Passenger 
    {
        void buyTicket();
    }
    
    //乘客实体
    class RealPassenger implements Passenger 
    {
        @Override
        public void buyTicket() 
        {
           System.out.print("购买了火车票");
        }
    }
    
    /**
     * 静态代理类
     */
    class StaticProxy implements Passenger {
        Passenger passenger;
    
        public StaticProxy(Passenger p) 
        {
           this.passenger = p;
        }
    
        @Override
        public void buyTicket() 
        {
           System.out.println("通过代售点");
           passenger.buyTicket();
        }
    }
    
    /**
     * 用动态代理实现
     */
    class DynamicProxy implements InvocationHandler {
        public Object obj;
        
        // 把obj交给代理类
        Object obj(Object obj) 
    {
    this.obj = obj; return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
    { System.out.println(
    "通过代理"); method.invoke(obj, args); return null; } }
  • 相关阅读:
    ABAP 程序中的类 沧海
    ABAP类的方法(转载) 沧海
    More than 100 ABAP Interview Faq's(2) 沧海
    SAP and ABAP Memory总结 沧海
    ABAP Frequently Asked Question 沧海
    ABAP System Reports(Additional functions) 沧海
    ABAP Questions Commonly Asked 1 沧海
    ABAP Tips and Tricks 沧海
    ABAP System Fields 沧海
    ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard (转) 沧海
  • 原文地址:https://www.cnblogs.com/hnhcc39/p/2866156.html
Copyright © 2011-2022 走看看