码迷,mamicode.com
首页 > 编程语言 > 详细

【java基础】静态代理和动态代理

时间:2018-10-10 14:06:04      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:租房子   target   his   span   abs   代理   color   super   图片   

代理模式

代理是基本的设计模式之一,提供额外的或不同的操作,代理通常充当中间人的角色,如果用“租房子”来打比方,代理则是中介

技术分享图片

静态代理

package com.oxygen.proxy;

/**
 * @author Oxygen
 * @date 2018年10月10日
 */
public interface TargetInterface { // 接口
    void method1(); /* public abstract */
    void method2(String arg);
}
package com.oxygen.proxy;

/**
 * @author Oxygen
 * @date 2018年10月10日
 */
public class SimpleProxyDemo {
    public static void consumer(TargetInterface iface) {
        iface.method1();
        iface.method2("bonobo");
    }

    public static void main(String[] args) {
        consumer(new Target());
        consumer(new SimpleProxy(new Target()));
    }
}

class Target implements TargetInterface { // 目标对象

    @Override
    public void method1() { 
        System.out.println("method1 run ");
    }

    @Override
    public void method2(String arg) {
        System.out.println("method2 run" + arg);
    }
}

class SimpleProxy implements TargetInterface { // 静态代理对象
    private TargetInterface proxied; //

    public SimpleProxy(TargetInterface proxied) {
        super();
        this.proxied = proxied;
    }

    @Override
    public void method1() {
        System.out.println("=====before method1===== "); // 代理对象增强方法的代码
        proxied.method1();
        System.out.println("=====after method1===== "); // 代理对象增强方法的代码
    }

    @Override
    public void method2(String arg) {
        System.out.println("=====before method2===== "); // 代理对象增强方法的代码
        proxied.method2(arg);
        System.out.println("=====after method2===== "); // 代理对象增强方法的代码
    }
}
output:
method1 run method2 runbonobo
=====before method1===== method1 run =====after method1===== =====before method2===== method2 runbonobo =====after method2=====

 

【java基础】静态代理和动态代理

标签:租房子   target   his   span   abs   代理   color   super   图片   

原文地址:https://www.cnblogs.com/oxygenG/p/9765542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!