博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之-代理模式
阅读量:6280 次
发布时间:2019-06-22

本文共 1140 字,大约阅读时间需要 3 分钟。

一、什么是代理模式

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

我们来看下装饰者模式的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();   }}复制代码

结果

四、模式总结

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

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

转载于:https://juejin.im/post/5bf6cbfee51d45194266b0f6

你可能感兴趣的文章
Unbuntu安装遭遇 vmware上的Easy install模式
查看>>
几个常用的ASP木马
查看>>
python分析postfix邮件日志的状态
查看>>
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
Linux系统安装VMware Tools
查看>>
asp.net 页面右下角弹出类似QQ或MSN的消息提示
查看>>
游戏开发经常使用算法概述
查看>>
EDM制作要点
查看>>
爆牙齿的Web标准面试考题II(iPhone SMS/iChat UI的Web标准实现)
查看>>
XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库
查看>>
MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
查看>>