您的位置首页  日常用品  装饰

设计模式第十一讲:代理模式及其与装饰器模式的区别

  :为控制对另一对象的访问而提供一个代理。代理模式是一种基本的设计模式,策略模式、访问者模式、状态模式也都采用了代理模式。

  与装饰模式对比,相同点:装饰类(代理类)与被装饰类(被代理类)都需要实现相同的接口;不同点:1、强调的重点不同,装饰器类强调通过层层装饰来扩展附属功能,而代理模式强调对代理过程的控制;2、调用的方式不同,一般装饰器模式是通过构造器层层嵌套的形式,而代理模式隐藏被代理对象的内部细节,如图3中隐藏的ip地址和端口。

  按照使用目的对代理模式划分:1、远程代理,如上的Client代理的是远程的服务器接口;2、虚拟代理,先创建代理对象,真实对象的创建延迟,如现在比较流行的人工智能框架中对象的创建;3、保护代理,控制对象的访问;4、缓存代理,提供缓存,以便多个客户端访问;5、同步代理,几个客户端可以同时使用一个对象;6、智能引用,提供附属功能如记数,日志等。

  使用场景:1、系统架构,如反向代理,保证统一的入口;2、事务处理,保证数据最终一致性;3、远程代理,如Java中的RMI;4、添加附属功能,如AOP。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186