一、弊端
代理设计模式一定要有接口, 主类需要知道代理类与业务类,存在了耦合。
静态代理设计模式,每一个代理类都只能代理一个接口,如果有3000个接口的话,就得有3000个
代理类,而且这些代理类的结构都是类似的,不合理,下一篇将利用反射实现动态代理设计模式。
二、完整代码
package reflect.proxy;
public class StaticProxyMode {
public static void main(String[] args) {
IStaticProxy proxy = new StaticProxy(new StaticProxyReal());
proxy.spend();
}
}
interface IStaticProxy {
public void spend();
}
class StaticProxyReal implements IStaticProxy {
@Override
public void spend() {
System.out.println("【真实业务】");
}
}
class StaticProxy implements IStaticProxy{
private IStaticProxy real;
public boolean connect() {
System.out.println("【代理】连接成功");
return true;
}
public StaticProxy(IStaticProxy real) {
this.real = real;
}
public void close() {
System.out.println("【代理】连接关闭");
}
@Override
public void spend() {
if(this.connect()){
this.real.spend();
this.close();
}
}
}