结构型模式-代理模式

时间:2020-10-29 09:40:17   收藏:0   阅读:13

 

 

代理模式:为某个对象提供一种代理以控制对这个对象的访问。(在某些情况下,一个对象不适合或者不能直接引用另一个对象,而“代理对象”可以在客户端和目标对象之间起到中介的作用)

  代理模式作用:1. 隐藏被代理类的具体实现;

         2.实现客户端与被代理类的解耦,在不改变被代理类代码的情况下添加一些额外(日志、权限等)功能。

  简单使用:

 

//接口
public interface Image { void display(); }

  

//被代理类
public class RealImage implements Image { private String fileName; public RealImage(String fileName) { this.fileName = fileName; loadFromDisk(fileName); } private void loadFromDisk(String fileName) { System.out.println("Loading " + fileName); } @Override public void display() { System.out.println("Displaying " + fileName); } }

  

//代理类
public class ProxyImage implements Image { private RealImage realImage; private String fileName; public ProxyImage(String fileName) { this.fileName = fileName; } @Override public void display() { if (realImage == null) { realImage = new RealImage(fileName); } realImage.display(); } }

  

//测试
public class ProxyPatternDemo { public static void main(String[] args) { Image image = new ProxyImage("test_img.jpg"); image.display(); System.out.println(); image.display(); } }

  

  

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!