适配器模式 & 装饰器模式
一、适配器模式:
简单来讲,就是为了方便使用,完成从 一个接口 到 另一个接口 的 转换,这个负责转换的就是 适配器
例如:Reader ——> InputStreamReader 通过类内部组合 StreamDecoder 接收 InputStream 作为参数 完成适配器模式
InputStreamReader inputStreamReader = new InputStreamReader(this.getClass().getClassLoader().getResourceAsStream("test.txt"));
InputStreamReader:
aaarticlea/png;base64,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" alt="" />
二、装饰器模式:(装饰,就是在原来的基础上装饰的更漂亮,即包裹起原来的,在此基础上加上一些额外的功能)
InputStream ——> FileInputStream
InputStream ——> FilterInputStream(InputStream in) ——> BufferedInputStream(InputStream in)
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("test.txt"));
FilterInputStream 继承 InputStream 使其可以像InputStream一样被调用,
内部属性 in (组合的方式,使用InputStream,从而调用InputStream的方法),在此基础上进行附加操作的实现
aaarticlea/png;base64,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" alt="" />
BufferredInputStream:
aaarticlea/png;base64,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" alt="" />
适配器模式 & 装饰器模式的更多相关文章
- java设计模式4.适配器模式、装饰器模式
适配器模式 把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够工作. 1. 类的适配器模式 目标角色:期望的接口,对于类的适配器模式,此角色不可以是具体类 ...
- Java设计模式12:装饰器模式
装饰器模式 装饰器模式又称为包装(Wrapper)模式.装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能, ...
- JAVA装饰器模式
Java程序员们应该对java.io对不会陌生,因为java.io包采用了装饰器模式. 一.定义: Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样 ...
- Java进阶篇设计模式之五-----外观模式和装饰器模式
前言 在上一篇中我们学习了结构型模式的适配器模式和桥接模式.本篇则来学习下结构型模式的外观模式和装饰器模式. 外观模式 简介 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这 ...
- Java设计模式系列-装饰器模式
原创文章,转载请标注出处:<Java设计模式系列-装饰器模式> 一.概述 装饰器模式作用是针对目标方法进行增强,提供新的功能或者额外的功能. 不同于适配器模式和桥接模式,装饰器模式涉及的是 ...
- 装饰器模式 Decorator 结构型 设计模式 (十)
引子 现实世界的装饰器模式 大家应该都吃过手抓饼,本文装饰器模式以手抓饼为模型展开简介 "老板,来一个手抓饼, 加个培根, 加个鸡蛋,多少钱?" 这句话会不 ...
- 装饰器模式&&ES7 Decorator 装饰器
装饰器模式(Decorator Pattern)允许向一个现有的对象动态添加新的功能,同时又不改变其结构.相比JavaScript中通过鸡肋的继承来给对象增加功能来说,装饰器模式相比生成子类更为灵活. ...
- Java设计模式之五 ----- 外观模式和装饰器模式
前言 在上一篇中我们学习了结构型模式的适配器模式和桥接模式.本篇则来学习下结构型模式的外观模式和装饰器模式. 外观模式 简介 外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.这 ...
- 面向对象程序设计(OOP设计模式)-结构型模式之装饰器模式的应用与实现
课程名称:程序设计方法学 实验4:OOP设计模式-结构型模式的应用与实现 时间:2015年11月18日星期三,第3.4节 地点:理1#208 一.实验目的 加深对结构型设计模式的理解以及在开发中的实际 ...
随机推荐
- LNMP+HAProxy+Keepalived负载均衡 - LNMP基础环境准备
环境版本说明: 服务器系统:CentOS 7.5: ``` cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) # 输出结果 `` ...
- OC中的block作方法参数时的用法
方式一.在传参时直接声明block回调方法. 1. 定义方法: - (int)doTest:(NSString *)name success:(int (^)(int param1, int para ...
- 如何用管理员账户登录windows10
1.判断自己是否是管理员 在命令行中输入 whoami 只要显示不是 administrator 都不是管理员 2. 接着在命令行中输入 net user 可以查看这台电脑有多少个用户 ...
- [Bzoj3252]攻略(dfs序+线段树)
Description 题目链接 Solution 可以想到,每次肯定是拿最大价值为最优 考虑改变树上一个点的值,只会影响它的子树,也就是dfs序上的一个区间, 于是可以以dfs序建线段树,这样就变成 ...
- Hadoop环境搭建 (伪分布式搭建)
一,Hadoop版本下载 建议下载:Hadoop2.5.0 (虽然是老版本,但是在企业级别中运用非常稳定,新版本虽然添加了些小功能但是版本稳定性有带与考核) 1.下载地址: hadoop.apache ...
- 大话CNN经典模型:AlexNet
2012年,Alex Krizhevsky.Ilya Sutskever在多伦多大学Geoff Hinton的实验室设计出了一个深层的卷积神经网络AlexNet,夺得了2012年ImageNet LS ...
- 世界未解之谜之----------Android Gradle
今天运行项目,运行的debug出来的包竟然是命名过的,但是我的buildTypes里面的debug 并没有执行重命名操作.很奇怪,我的猜测是: 执行buildTypes的时候,虽然是assermdeb ...
- 启动zookeeper报错:JAVA_HOME is not set
启动zookeeper时报错JAVA_HOME is not set 看了环境变量,确实配置好了,但是zookeeper竟然没找到 修改bin目录下的zkEnv.cmd关于jdk的一部分 set JA ...
- android 管理Touch事件
The onInterceptTouchEvent() method gives a parent the chance to see any touch event before its child ...
- chrome flash插件改为自动运行
1.情景展示 国内网页视频播放大部分用的都是flash插件,每次都要将默认改为允许,才能正常播放 能不能让flash插件在所有的网站上都能自动运行呢? 2.解决方案 第一步:打开fla ...