对象包装对象,目的是功能增强。

最常见的JAVA IO

DubboSpring中都有一些wapper类。

// 出自Dubbo源码 ProtocolFilterWrapper,版本2.6.4
public class ProtocolFilterWrapper implements Protocol {private final Protocol protocol;// 被包装的protocol对象public ProtocolFilterWrapper(Protocol protocol) {if (protocol == null) {throw new IllegalArgumentException("protocol == null");}this.protocol = protocol;}private static <T> Invoker<T> buildInvokerChain(final Invoker<T> invoker, String key, String group) {// -----------------省略一些代码-------------------}@Overridepublic int getDefaultPort() {return protocol.getDefaultPort();}@Overridepublic <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {if (Constants.REGISTRY_PROTOCOL.equals(invoker.getUrl().getProtocol())) {return protocol.export(invoker);}return protocol.export(buildInvokerChain(invoker, Constants.SERVICE_FILTER_KEY, Constants.PROVIDER));}@Overridepublic <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {if (Constants.REGISTRY_PROTOCOL.equals(url.getProtocol())) {return protocol.refer(type, url);}return buildInvokerChain(protocol.refer(type, url), Constants.REFERENCE_FILTER_KEY, Constants.CONSUMER);}@Overridepublic void destroy() {protocol.destroy();}
}

上述代码在Dubbo中的具体原理参考文章 dubbo的filter

DubboHandler机制包装非常复杂,可以详细看下。下面给出一张图,供参考。具体的包装过程看文章 dubbo的handler机制

查看全部 浅谈模式 - 汇总篇

浅谈模式 - 装饰者模式相关推荐

  1. 浅谈企业中台商业模式及建设思路

    浅谈企业中台商业模式及建设思路 文章目录 浅谈企业中台商业模式及建设思路 前言 企业中台的定义和能力 企业中台的商业故事 企业中台的商业模式 构建企业中台时不同的企业初衷 企业中台的价值主张 企业中台 ...

  2. 浅谈Mediator仲裁者模式

    一.前言 Mediator模式又称为仲裁者模式或中介者模式,所起的作用就是仲裁和中介,帮助其它类之间进行交流.在仲裁者模式之中,我们要明确两个概念,那就是仲裁者(Mediator)和组员(Collea ...

  3. 精通python设计模式-浅谈Python设计模式 - 原型模式

    声明,本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 在<精通Python设计模式>中把设计模式分为三种类型: 创建型模式 ...

  4. 浅谈Ble-Mesh的LPN模式

    选择LPN模式的原因: 能有效的降低产品功耗. 比如:一个温湿度传感器产品,需要超过设定阈值才会从上送数据,这样就没有长时间唤醒时间,就无法接收到网关下发的设置数据,这时候就需要LPN模式.LPN的节 ...

  5. 浅谈工厂和建造者模式

    最近在写安卓项目,在引入rxJava和Retrofit发现大量引用的建造者模式.那在此就记录和简单介绍一下两者的区别和使用方法. 工厂模式和建造者模式都属于创建型模式,它对类的实例化进行了抽象. 1. ...

  6. 十、结构型模式——装饰者模式

    以前谈到过继承会破坏封装,因此采用组合的方式更好,那么装饰者模式就是组合的实现模式 一.模式产生初衷 孙悟空有七十二般变化,他的每一种变化都给他带来一种附加的本领.他变成鱼儿时,就可以到水里游泳:他变 ...

  7. 7.js模式-装饰者模式

    1. 装饰者模式 给对象动态增加职责的方式称为装饰者模式. Function.prototype.before = function(beforefn){ var _self = this; retu ...

  8. 装饰者模式---装饰者模式和桥接模式的区别

    装饰者模式: 什么是装饰者模式:动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案. 装饰者模式又称为包装模式,它主要是为了扩展对象的功能,包装类通过持有对象的引用(将对象传到 ...

  9. java中什么是装饰者模式? 装饰者模式的使用!!

    其实无论是代理模式还是装饰模式.本质上我认为就是对原有对象增强的方式~ 一.对象增强的常用方式 很多时候我们可能对Java提供给我们的对象不满意,不能满足我们的功能.此时我们就想对Java原对象进行增 ...

最新文章

  1. 有人说 Maven 很简单,我却被 伤害 过
  2. 鸡兔同笼 n为总数,m为总腿数,a为鸡,b为兔
  3. Android 图片平铺实现方式
  4. 《糖豆人:终极淘汰赛》成功背后蕴含了何种设计?
  5. 使用Netbeans开发App Engine Java
  6. iOS - Masonry自动布局
  7. VBA 自制 TreeView 树视图,附加控件 TreeView 最优替代方案
  8. 3d激光雷达开发(ransac的思想)
  9. red hat linux基本命令行,Red Hat Enterprise Linux4 一些常用命令总结
  10. python3入门基础语法总结_Python基础语法总结(3)
  11. CPDA|数据分析很难学?分享最有效的学习路径!
  12. win7定时关机命令_只需9步教你轻松设置win7系统定时关机,无需任何工具
  13. [PTA]6-12 判断奇偶性
  14. Xcode8写代码闪退
  15. Android 语言码_国家码
  16. L1-009 N个数求和 (20 分)
  17. 企业邮箱怎么弄企业邮箱是什么邮箱求一个企业邮箱账号
  18. 低代码助力制造型企业——工时管理系统
  19. 著名的菲波拉契(Fibonacci)数列,其第一项为0,第二项为1,从第三项开始,其每一项都是前两项的和。编程求出该数列前N项数据。
  20. linux网络掉线频繁怎么设置,解决ssh登录的时候,没操作总是会自动掉线的设置办法,100%有效...

热门文章

  1. c代码具体的执行过程
  2. 关于vant van-tabs sticky属性不起作用
  3. 一个强大好用的音视频工具,ffmpeg
  4. ECharts周围空白的地方太多了,如何解决
  5. VirtualBox 6.1.8发布,支持Guest Additions
  6. 一些电子图书下载地点
  7. 淘宝网店数据包使用方法教学
  8. 【踩坑记录】Win10+VS2017安装配置PCL
  9. luogu4711 「化学」相对分子质量
  10. 李弘毅机器学习笔记:第十六章—无监督学习