java中的静态代理的学习记录

一.静态代理

1. 原理:在原本类的某个方法中想要加入一些其它的业务逻辑;

2. 一般的应用场景:当你对项目进行二次开发的时候,里面有类牵扯到了很多很多造成了你不能去修改那个类中方法的时候,你可以用静态代理,通过调用代理类来给原本的方法加入你想要的逻辑,从而不牵扯到之前功能的正常使用

3.限制条件:
    a)一个代理对象只能服务一个类
    b)代理对象必须实现某个接口

3. 源代码的实现:

    a:Hello接口
package com.lilei.test.proxytest;

/**
 * Created by Administrator on 2017/9/26
 */
public interface Hello {
    void say(String name);
    void eat(String name);
}

b:接口的实现类HelloImpl:

package com.lilei.test.proxytest;

/**
 * Created by Administrator on 2017/9/26.
 */
public class HelloImp1 {
    public void say(String name) {
        System.out.println("Hello! "+name);
    }

    public void eat(String name) {
        System.out.println("eat "+name);
    }
}
c:代理类:
package com.lilei.test.proxytest;

/**
 * 静态代理类
 * Created by Administrator on 2017/9/26.
 */
public class HelloProxy implements Hello {

    private Hello hello;

    public void eat(String name) {

    }

    public HelloProxy(){
        hello = new HelloImp();
    }

    public void say(String name) {
        before();
        hello.say(name);
        after();
    }

    private void before(){
        System.out.println("Before");
    }

    private void after(){
        System.out.println("After");
    }
}

d:静态代理测试类:

package com.lilei.test.proxytest;

/**
 *
 * Created by Administrator on 2017/10/11.
 */
public class StaticProxyTest {
    public static void main(String[] args) {
        Hello hello = new HelloProxy();
        hello.say("lilei");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值