设计模式8-代理模式

定义

为其他对象提供一种代理,以控制对这个对象的访问。

实现

1
2
3
public interface Runner{
void run();
}
1
2
3
4
5
6
public class LiuXiang implements Runner{
@Override
public void run(){
//run
}
}
1
2
3
4
5
6
7
8
9
10
public class LiuXiangProxy implement Runner{
private Runner liuxiang;
@Override
public void run(){
if(liuxiang == null){
liuxiang = new LiuXiang();
}
liuxiang.run();
}
}

代理模式相对于装饰者模式比较明显的就是,装饰是对一些继承或实现同一父类或者接口的对象进行装饰,装饰对象是动态传入的,而代理模式则是专门针对一个或者一类,非动态传入

优点

1、职责清晰
2、高拓展性
3、智能化

缺点

1、代理模式可能造成处理速度变慢
2、由于加了一层代理,想比较好的实现代理方式,比较复杂