装饰:底层仍然使用原始的功能,但是对外提供封装好的增强的功能!
package com.gc.file; import java.io.FileReader; import java.io.IOException; import java.io.Reader; /** * 使用字符缓冲区对Reader进行装饰---提高读取速度 * 每次读取磁盘时,读一批数据到字符数组(缓冲区)中 * 外界取得时候直接从缓冲区中获取数据,因此速度快! * */ public class MyBufferedReader { private Reader reader;//底层仍然用Reader的方法,但是对外提供了增强的读取功能 public MyBufferedReader(Reader reader) { this.reader = reader; } private char[] cbuf = new char[1024];//字符缓冲区 private int pos = 0;//记录读取位置 private int count = 0;//记录总数 public int myRead() throws IOException { if(count==0) { //往字符缓冲区读,底层用到的仍然是Reader的read() count = reader.read(cbuf); //从新读取后,指针归0 pos = 0; } if(count<0) return -1; count--; //返回的时候直接操作缓冲区,而不是去磁盘读1个返回1个,提高了效率---装饰:本质不变,但增强了功能(提高读取速度) char ch = cbuf[pos++]; return ch; } public static void main(String[] args) throws IOException { MyBufferedReader myReader = new MyBufferedReader(new FileReader("temp\\text.txt")); int ch = 0; while((ch=myReader.myRead())!=-1) { System.out.print((char)ch); } } }
层层包装---装饰
(将底层功能进行了隐藏)
不管怎么装饰,仍离不开原始的功能
基于原始功能再进行扩展对外暴露的则是扩展后的功能
相关推荐
而装饰模式是一种结构型设计模式,它允许在不修改已有对象的基础上,通过添加新的行为或职责来扩展对象的功能。在Java IO系统中,装饰模式被广泛应用于构建灵活且可扩展的输入输出流体系。 1. Java IO体系结构: ...
"04IO设计模式.zip"这个压缩包包含了一个名为"IO设计模式了解.flv"的视频文件,很可能是对I/O设计模式的讲解或演示。虽然没有具体的标签信息,但我们可以根据I/O设计模式的主题来展开讨论。 首先,I/O设计模式是...
在Java编程语言中,IO流(Input/Output Stream)是处理数据输入和输出的主要机制,而Decorator设计模式是一种结构型设计模式,它允许我们在运行时动态地给对象添加新的行为或责任。这两种概念的结合使得Java IO系统...
装饰者模式是一种结构型设计模式,它允许在运行时向对象添加新的行为或职责,而无需修改对象本身。这种模式的核心思想是通过将对象包装在一个装饰类中来扩展功能,而不是通过继承。以下是对装饰者模式的详细阐述: ...
【装饰器模式】是一种设计模式,它允许向现有的对象添加新的功能,同时又不改变其原有结构。在Java IO类库中,装饰器模式被广泛使用,以灵活地扩展类的功能,而避免了使用继承带来的复杂性。装饰器模式的核心在于,...
【Java设计模式之装饰器模式】装饰器模式是一种结构型设计模式,它的主要目的是在不修改已有对象的前提下,通过...在Java的IO库、GUI组件以及其他需要动态扩展功能的场景中,装饰器模式都是一个非常实用的设计模式。
装饰模式(Decorator Pattern)是Java设计模式中的一种结构型模式,它允许在运行时动态地向对象添加新的行为或职责,而不会破坏封装性。这种模式可以用来将多个功能组合在一起,同时保持类的可扩展性和灵活性。在...
装饰模式是一种结构型设计模式,它允许我们向一个对象添加新的功能或改变其行为,而无需修改原有对象的代码。这种模式在不破坏封装性的前提下,动态地给对象增加功能,提高了系统的可扩展性和可维护性。装饰模式通常...
装饰者模式(Decorator)是一种设计模式,用于在运行时动态地给对象添加额外的责任或功能。它是结构型设计模式的一种,能将行为的增加与对象的创建分离,使得我们可以独立地扩展对象的功能。 在Java或其他面向对象...
装饰模式是一种结构型设计模式,它允许在运行时动态地为对象添加新的行为或职责,同时保持对象的接口不变。这种模式在不修改原有代码的基础上,通过组合而非继承来扩展对象的功能,避免了类爆炸的问题。 装饰模式的...
在编程领域,设计模式是一种被广泛接受的解决常见问题的最佳实践。C#设计模式是.NET开发者在构建可扩展、可维护的软件系统时的重要工具。本文将深入探讨C#中的几种关键设计模式,并通过源码实例来加深理解。 1. **...
**JAVA设计模式** 在软件工程领域,设计模式是一种在特定情境下解决问题的可复用解决方案。它们是经验的总结,代表了在特定上下文中被广泛接受的、经过时间考验的最佳实践。Java设计模式是面向对象编程中的一种重要...
### Java设计模式入门详解 #### 一、设计模式概述 设计模式是软件工程领域中一种通用的解决方案,它描述了在特定情况下解决常见问题的方法。《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements ...
Java中设计模式(装饰设计模式)的实例详解 一、概述 装饰设计模式(Decorator Pattern)是一种结构型设计模式,它允许在不修改原有对象的情况下,给对象添加新的功能。该模式将对象的核心功能和装饰功能分离,...
在Java EE环境中,如Spring框架中,设计模式的运用更是无处不在,如依赖注入(DI)利用了工厂模式和代理模式,AOP(面向切面编程)则基于代理模式和装饰者模式。 总之,《设计模式在Java语言中的运用》这本书可能会深入...
Java 设计模式最佳实践是软件开发中的重要主题,它涵盖了多种模式,这些模式已被广泛接受并应用于实际项目中,以解决常见的编程问题和提升代码的可读性、可维护性和可扩展性。在这个主题中,我们将深入探讨一些关键...
### JAVA设计模式在JDK中的应用 #### 一、引言 在软件开发过程中,设计模式作为一套被广泛接受的解决方案,能够帮助开发者解决常见的设计问题。Java作为一门流行的编程语言,其标准库(JDK)中巧妙地融入了多种设计...
Java设计模式是软件工程中的一种最佳实践,它是一种在特定情境下解决常见问题的经验总结。设计模式并不是具体的代码或库,而是对在软件设计中反复出现的问题及其解决方案的描述。这些模式提供了可重用的解决方案,使...
Java企业设计模式是软件开发中不可或缺的一部分,它们是经过时间考验、被广泛接受的解决方案模板,用于解决在大型企业级应用程序开发中常见的问题。这些模式提供了可重用的结构,帮助开发者更有效地组织代码,提高...
Decorator模式,也称为装饰模式,是设计模式中的一个重要组成部分,它在不改变原有对象接口的前提下,动态地给对象添加新的功能,从而扩展了对象的能力。这篇博客()将深入探讨这个模式的细节。 装饰模式的核心...