码迷,mamicode.com
首页 > 其他好文 > 详细

结构型模式-代理模式

时间:2020-10-29 09:40:17      阅读:13      评论:0      收藏:0      [点我收藏+]

标签:adf   test   ring   nts   pat   实现   imp   ati   splay   

 

 

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

  代理模式作用: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(); } }

  

  

 

结构型模式-代理模式

标签:adf   test   ring   nts   pat   实现   imp   ati   splay   

原文地址:https://www.cnblogs.com/heibingtai/p/13889548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!