代理,静态代理和动态代理
代理是一种设计模式。
目的:解耦,隔离调用者和被调用者
三要素:共同接口,实现对象和代理对象
使用举例:调用函数之前需要对数据进行预处理
按照代理的创建时期,代理类分为:静态代理和动态代理
静态代理:编译时代理类已存在
动态代理:运行时创建类
Android例子:AIDL
静态代理缺点:对于不同接口的代理需要生成不同的代理类,代理类增多,代码复杂。动态代理只有在使用时生成需要的代理类,只需要:
Action proxy = (Action) Proxy.newProxyInstance(ClassLoader.getSystemClassLoader(), new Class[]{Action.class}, new DynamicProxyHandler(realObject));即可
详情:java.lang.reflect.Proxy
参考: