装饰者模式的核心就是 装饰者 和 被装饰者 必须是共同的类型,可以是实现共同的接口,或者拥有共同的祖先。 最复杂的应该是这种情况:(多个装饰者和多个被装饰者)(BaseClass 和 Decorator 都是抽象类,) 看到上图,可能有些人就要问了,DecoratorX 和 DecoratorY 能 ...
分类:
其他好文 时间:
2020-06-24 00:39:00
阅读次数:
48
IO流 1.概念 流:数据传输通道 模型:采用Decorator装饰者模式。依照功能可以对流进行分类。 2.分类 按数据流方向: 输入流 输出流 按传输类型: 这4种均是抽象流,为所有IO流的超类 字节流(用来处理图像,视频,PPT,Word) Reader Writer 字符流(只能处理纯文本) ...
分类:
编程语言 时间:
2020-06-21 23:24:26
阅读次数:
66
装饰者模式 (Decorator Pattern)又称装饰器模式,在不改变原对象的基础上,通过对其添加属性或方法来进行包装拓展,使得原有对象可以动态具有更多功能。 本质是功能动态组合,即动态地给一个对象添加额外的职责,就增加功能角度来看,使用装饰者模式比用继承更为灵活。好处是有效地把对象的核心职责和 ...
分类:
编程语言 时间:
2020-06-04 13:46:08
阅读次数:
63
装饰者模式(Decorator) 装饰者模式(Decorator):动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 装饰者模式结构: 抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。 具体构件(ConcreteComponent)角 ...
分类:
其他好文 时间:
2020-06-02 11:42:00
阅读次数:
47
本教程源码请访问:tutorial_demo 一、什么是动态代理 1.1、概念 动态代理的用途与装饰模式很相似,就是为了对某个对象进行增强。所有使用装饰者模式的案例都可以使用动态代理来替换。 特点:字节码随用随创建,随用随加载; 作用:不修改源码的基础上对方法增强; 学习目的:为了学习AOP的原理做 ...
分类:
编程语言 时间:
2020-06-01 20:24:12
阅读次数:
54
一、装饰者模式的应用场景 在我们的生活中比如给煎饼加个鸡蛋,给蛋糕加上一些水果,给房子装修等。为对象扩展一些额外对象的职责。装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,提供了比继承更有弹性的替代方案(扩展原有对象的功能)。 装饰者模式使用于以下几种场景: 用于扩展 ...
分类:
其他好文 时间:
2020-05-30 19:40:54
阅读次数:
84
一、建造者模式介绍 1、定义与类型 定义:在不改变原有对象的基础之上,将功能附加到对象上 提供了比继承更有弹性的替代方案(扩展原有对象功能) 类型:结构型 2、适用场景 扩展一个类的功能或给一个类添加附加职责 动态的给一个对象添加功能,这些功能可以再动态的撤销 3、优点 通过使用不同装饰类以及这些装 ...
分类:
其他好文 时间:
2020-05-24 11:27:58
阅读次数:
49
前言 本节从装饰者模式到Java 里的 IO。装饰者模式能够在不修改任何底层类代码的情况下,给你的(或别人的) 对象赋予新的职责。属于结构型设计模式。符合开闭原则,但是会产生更多的类,提高程序复杂性。 代码实现 UML 角色:抽象的实体类,确定的实体类。抽象的装饰者,确定的装饰者。 Java I/O ...
分类:
其他好文 时间:
2020-05-23 11:15:29
阅读次数:
52
Java IO(九)FilterInputStream 和 FilterOutputStream 一、介绍 FilterInputStream 和 FilterOutputStream 是过滤字节输入流和过滤字节输出流。它们的作用是封装其他的基础流,并为它们提供额外的功能。它们的子类分别有: 缓冲流 ...
分类:
编程语言 时间:
2020-05-21 23:47:06
阅读次数:
59