代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.代理服务器。
场景:有一个图片查看应用,每个图片都很大,载入很消耗资源,我们希望有一个界面上显示的是缩略图片,用户点击缩略图片,能够载入实际的图片。
怎样编写这个应用用代理是一种比较好的办法。
源代码:
package 代理模式;
public interface IImage {
public void displayImage();
}
package 代理模式;
public class ImageDisply implements IImage { //显示原来的图片,非常消耗资源
@Override
public void displayImage() {
// TODO Auto-generated method stub
System.out.println("显示原图。");
}
}
package 代理模式;
public class ImageProxy implements IImage { //代理
IImage iImage;
public ImageProxy(IImage iImage) {
super();
this.iImage = iImage;
}
@Override
public void displayImage() {
// TODO Auto-generated method stub
System.out.println("显示缩略图效果。");
}
public void mousePress(){//当点击鼠标的时候,显示原图
iImage.displayImage();
}
}
package 代理模式;
public class TestProxy {
public static void main(String[] args) {
ImageProxy imageProxy = new ImageProxy(new ImageDisply());
imageProxy.displayImage(); //通常情况下,显示缩略图,减少资源消耗
imageProxy.mousePress(); //点击鼠标的时候,显示原图
}
}
Proxy代理小结:
为其他对象提供一种代理以控制对这个对象的访问.
对于开销很大的对象,只有在使用它时才创建,这个原
则可以为我们节省很多宝贵的Java内存.
一些例子:
1.授权机制
不同级别的用户对同一对象拥有不同的
访问权利,你可以编写一个代理类来负责检查用户权
限来决定他们怎样去访问.
2.某个客户端不能直接操作到某个对象,但又必须和
那个对象有所互动.
如我们前面讲到的例子

本文介绍如何通过代理模式优化图片查看应用,减少资源消耗并提升用户体验。具体阐述了代理概念、源代码实现及代理模式的应用场景,包括授权机制、客户端与对象互动等实例。
781

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



