代理模式
一. 代理模式
1.1 定义
- 为其他对象提供一种代理以控制对这种对象的访问.
二. 具体实现
2.1 创建公共接口
public interface IProxy {
void print();
}
2.2 创建被代理类
public class ProxiedA implements IProxy{
@Override
public void print() {
System.out.println("proxiedA print ...");
}
}
public class ProxiedB implements IProxy{
@Override
public void print() {
System.out.println("proxiedB print ...");
}
}
2.3 创建代理类
public class Proxy implements IProxy{
private IProxy proxy;
public Proxy(IProxy proxy){
this.proxy = proxy;
}
@Override
public void print() {
proxy.print();
}
}
2.4 调用
public static void main(String[] args) {
IProxy proxy = new Proxy(new ProxiedA());
proxy.print();
proxy = new Proxy(new ProxiedB());
proxy.print();
}
2.5 输出
proxiedA print ...
proxiedB print ...
三. 优缺点
3.1 优点
- 职责清晰.
- 高扩展性.
3.2 缺点
- 对对象的请求速度变慢.
四. 源码
https://github.com/Seasons20/DisignPattern.git
END