Skip to content

Commit 0b4e992

Browse files
author
laileon
committed
add
1 parent 18280dc commit 0b4e992

File tree

1 file changed

+10
-0
lines changed
  • src/com/blankj/custom/desingn_pattern/proxys/dynamicProxy

1 file changed

+10
-0
lines changed

src/com/blankj/custom/desingn_pattern/proxys/dynamicProxy/Client.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@
44

55
public class Client {
66
public static void main(String[] args) {
7+
8+
// 一个典型的动态代理创建对象过程可分为以下四个步骤:
9+
// 1、通过实现InvocationHandler接口创建自己的调用处理器 IvocationHandler handler = new InvocationHandlerImpl(...);
10+
// 2、通过为Proxy类指定ClassLoader对象和一组interface创建动态代理类
11+
// Class clazz = Proxy.getProxyClass(classLoader,new Class[]{...});
12+
// 3、通过反射机制获取动态代理类的构造函数,其参数类型是调用处理器接口类型
13+
// Constructor constructor = clazz.getConstructor(new Class[]{InvocationHandler.class});
14+
// 4、通过构造函数创建代理类实例,此时需将调用处理器对象作为参数被传入
15+
// Interface Proxy = (Interface)constructor.newInstance(new Object[] (handler));
16+
717
ISubject subject = new RealSubject();
818

919
InvocationHandler handler = new MyInvocationHandler(subject);

0 commit comments

Comments
 (0)