一、分类
- 静态代理模式
- 动态代理模式
二、说明
-
静态代理模式
/**
-
与适配器模式的区别,适配器模式主要改变所考虑对象的接口,
-
而代理模式不能改变所代理类的接口。与装饰器模式的区别,
-
装饰器模式是为了增强功能,代理模式是为了加以控制 */ public class ProxySigntureService implements SigntureService {
private SigntureService signatureService;
/**
-
Default constructor */ public ProxySigntureService(SigntureService signatureService) { this.signatureService = signatureService; }
public void sign() { //控制对这个对象的访问 // 实现电子签名 }
-
}
-
-
动态代理模式
public class DynamicProxySignatureService implements InvocationHandler { private Object obj;
public DynamicProxySignatureService(Object obj) { this.obj = obj; } @Override public Object invoke(Object proxyObj, Method method, Object[] objects) throws Throwable { return method.invoke(obj,objects); }}
源代码:
[hanko/design-pattern
gitee.com