一.代理模式
什么是代理模式?就是我们不直接访问对象,我们创建被访问对象的访问层,即代理,通过代理类访问对象.
为什么不直接访问呢?好比你在国内访问国外网址,一般访问不了吧,这个时候你就的通过代理软件(fanqiang工具)去访问,代理软件在海外的服务器会给你解析你所需要的资源.
优点: 1、职责清晰。 2、高扩展性。 3、智能化。
缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。
二.代码实现
//两个类实现同一接口
interface Subject{
public void dowork(String work);
}
//被代理的类
class RealSubject implements Subject{
String work;
@Override
public void dowork(String work) {
this.work = work;
System.out.println(work);
}
}
//代理类
class ProxySubject implements Subject{
private RealSubject realSubject;
public void dowork(String work) {
realSubject = new RealSubject();
realSubject.dowork(work);
System.out.println("翻墙");
}
public void doSomething(String work){
realSubject.dowork(work);
}
public void doNothing(String work){}
}
设计模式只是一种指导思想,你会发现其实这个模式和适配器模式,和装饰器模式有点像.在适配器和装饰器里面就运用到代理模式的技巧.
1、和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。
2、和装饰器模式的区别:装饰器模式为了增强功能,而代理模式是为了加以控制。
代理模式是一种设计模式,用于在客户端和目标对象之间创建一个代理,以控制对目标对象的访问。它能清晰职责、提供高扩展性和智能化功能。代码示例中展示了接口、被代理类和代理类的实现。代理模式与适配器模式和装饰器模式有相似之处,但主要区别在于接口的改变和目的的不同。适配器模式改变接口,而装饰器模式则是为了增强功能,代理模式则侧重于控制。
1002

被折叠的 条评论
为什么被折叠?



