千家信息网

装饰器模式是什么意思

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"装饰器模式是什么意思",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"装饰器模式是什么意思"吧!装饰器(Decorator)模式指在不改变现
千家信息网最后更新 2025年01月23日装饰器模式是什么意思

本篇内容主要讲解"装饰器模式是什么意思",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"装饰器模式是什么意思"吧!

装饰器(Decorator)模式指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。采用装饰模式扩展对象的功能比采用继承方式更加灵活;可以设计出多个不同的具体装饰类,创造出多个不同行为的组合。但是装饰模式增加了许多子类,如果过度使用会使程序变得很复杂。

模式结构

装饰器模式的角色如下:

  • 顶层接口

  • 被装饰者

  • 装饰器抽象类

  • 装饰器

源码导读

装饰器模式使用的典型就是io流了,前面适配器模式我们说到过io流使用了适配器模式,用于字节流转换到字符流;装饰器模式在io流中也是一个很经典的使用。其使用的地方就是给流装饰上缓存。以输入流为例, BufferedInputStream 就是对FileInputStream的装饰,我们看一下这段代码:

    String file = "out.txt";        InputStream ins = new FileInputStream(file);     BufferedInputStream bufin= new BufferedInputStream(ins);     int b;     while((b=bufin.read())!=-1){         System.out.println(Integer.toHexString(b));    }

BufferedInputStream 源码:

public class BufferedInputStream extends FilterInputStream {         public BufferedInputStream(InputStream in) {        this(in, DEFAULT_BUFFER_SIZE);    }    ......    public synchronized int read(byte b[], int off, int len) throws IOException{        ......    }}

它继承了FilterInputStream,而 FilterInputStream 继承了 InputStreamFileInputStream也继承了InputStream 。 所以这里的角色关系为 InputStream 是顶层类(接口),FileInputStream 是被装饰类,BufferedInputStream 是装饰类。BufferedInputStreamFileInputStreamInputStream继承过来的方法进行了装饰,这里的。FilterInputStream占据的角色是装饰器抽象类,但其并不是个抽象类;这并不影响我们对其模式的理解。

到此,相信大家对"装饰器模式是什么意思"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

模式 对象 意思 就是 结构 角色 不同 内容 功能 多个 接口 方法 源码 适配器 顶层 学习 适配 复杂 实用 更深 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电脑服务器型号如何看 四年级网络安全征文怎么写 怎么获取数据库链接地址 azure arc 服务器 云服务器也是物理机虚拟出来的嘛 网络安全与信息化 阿里云服务器费用多久交一次 手机软件开发定制公司 网络安全法宣传图版 睢宁县校园网络安全 联想服务器硬盘检测不到 江西联想服务器维修多少钱 江北区提供软件开发流程代理商 腾讯云开发数据库日志 滨州染整管理软件开发公司 软件开发技术报告书 互联网高科技数码时代 神经网络技术自动答题技巧 我的世界怎么在服务器里面挖钻石 win7有服务器管理器吗 qq邮箱登录连接不到服务器 农行软件开发上班时间 重庆翔民软件开发有限公司 DHCP服务器的建立与管理 黔东南为网络安全代言 网络安全方面网站的两种类型 数据库文件无法关闭 企业客户信息管理系统数据库 固态硬盘 做服务器 新世界美西服务器怎么样
0