自己实现静态代理
# 被代理类接口
//操作统一接口
public interface Operate {
public void saying();
public void watching();
}
1
2
3
4
5
6
2
3
4
5
6
# 被代理类
public class OperateImpl implements Operate {
public void saying() {
System.out.println("我说话了");
}
public void watching() {
System.out.println("我看电视了");
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 代理类
package com.design.proxy.proxyown;
public class Proxy implements Operate {
private OperateImpl operateImpl;
public Proxy(OperateImpl operateImpl) {
this.operateImpl = operateImpl;
}
public void saying() {
System.out.println("自定义代理前置");
operateImpl.saying();
System.out.println("自定义代理后置");
}
public void watching() {
System.out.println("自定义代理前置");
operateImpl.watching();
System.out.println("自定义代理后置");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 测试类
public class TestMain {
public static void main(String[] args) {
Proxy proxy = new Proxy(new OperateImpl());
proxy.saying();
proxy.watching();
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 测试结果
自定义代理前置
我说话了
自定义代理后置
自定义代理前置
我看电视了
自定义代理后置
1
2
3
4
5
6
2
3
4
5
6
编辑 (opens new window)
上次更新: 2022/03/08, 00:59:33