1️⃣概念
定义:为其他对象提供一种代理,以控制对这个对象的访问;
代理对象在客户端和目标对象之间起到中介的作用;
2️⃣适用场景
保护目标对象
增强目标对象
3️⃣优点
代理模式能将代理对象与真实被调用的目标对象分离
一定程度上降低了系统的耦合度,扩展性好;
保护目标对象
增强目标对象
4️⃣缺点
代理模式会造成系统设计中类的数目增加;
在客户端和目标对象增加一个代理对象,会造成请求处理速度变慢;
增加了系统的复杂度;
5️⃣代理模式Coding
①UML类图
②创建Sourceable接口
public interface Sourceable {
public void method();
}
③创建Source类实现Sourceable
public class Source implements Sourceable {
@Override
public void method() {
System.out.println("the original method!");
}
}
④创建代理类Proxy实现Sourceable
public class Proxy implements Sourceable {
private Source source;
public Proxy(){
super();
this.source = new Source();
}
@Override
public void method() {
before();
source.method();
atfer();
}
private void atfer() {
System.out.println("after proxy!");
}
private void before() {
System.out.println("before proxy!");
}
}
⑤创建测试类ProxyTest
public class ProxyTest {
public static void main(String[] args) {
Sourceable source = new Proxy();
source.method();
}
}
输出结果
before proxy!
the original method!
after proxy!
