设计模式之-代理模式

栏目: 后端 · 发布时间: 6年前

内容简介:我们来看下装饰者模式的UML图:

一、什么是代理模式

代理模式: 为其他对象提供一种代理以控制对这个对象的访问 。简单来说这就是给目标对象生成一个代理对象,并由代理对象控制对目标对象的引用。

我们来看下装饰者模式的UML图:

设计模式之-代理模式

二、代理模式的构成

  • Subject(抽象主题角色 ):它声明了真实主题和代理主题的共同接口;

  • Proxy(代理主题角色) :实现了抽象主题,它拥有对真实主题的引用,这样它就可以操作真实的主题对象;

  • RealSubject(真实主题角色) :实现了抽象主题,里面实现了具体的业务操作;

三、实例演示

我们来写一个简单的Demo,我们就以代购化妆品为例写一个例子。

创建一个化妆品的接口

public interface Cosmetics {

   void BuyCosmetics();
}复制代码

创建一个真实的主题

public class Me implements Cosmetics{

   @Override
   public void BuyCosmetics() {
       System.out.println("我想买韩国的韩妆品,但是我没法出国怎么办?");
   }
}复制代码

代理主题角色

public class Proxy implements Cosmetics {

   private Me me;

   @Override
   public void BuyCosmetics() {

       if (me == null) {
           me = new Me();
       }

       me.BuyCosmetics();
       // 代理增强的方法
       proxys();
   }

   public void proxys() {

       System.out.println("我去帮你买吧!");
   }
}复制代码

来写一下测试类

public class Test {

   public static void main(String[] args) {

       Proxy proxy = new Proxy();

       proxy.BuyCosmetics();
   }
}复制代码

结果

设计模式之-代理模式

四、模式总结

通过上面的介绍我们对代理模式有了一个简单的了解,那么你可能享问代理模式有哪些实际的应用呢?其实我们每天使用电脑就无时无地的在使用代理模式,我们有很多的电脑应用,问了更方便快捷的打开应用,一般都会发送一个快捷方式到桌面,那么这个快捷方式就是一个典型的代理模式。

那么你还知道其他典型的代理模式嘛?


以上所述就是小编给大家介绍的《设计模式之-代理模式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

利用Python进行数据分析 原书第2版

利用Python进行数据分析 原书第2版

Wes McKinney / 徐敬一 / 机械工业出版社 / 2018-7 / 119

本书由Python pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。 第2版中的主要更新包括: • 所有的代码,包括把Py......一起来看看 《利用Python进行数据分析 原书第2版》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具