class Person
{
void chifan()
{
System.out.println("chifan");
}
}
class SuperPerson
{
private Person p;
SuperPerson(Person p)
{
this.p = p;
}
public void superChifan()
{
System.out.println("开胃酒");
p.chifan();
System.out.println("甜点");
System.out.println("来一根");
}
}
/*
装饰设计模式:
可以对原有对象的功能进行增强。
只要将原有对象作为参数传递给装饰类的构造函数即可。
对外提供增强方法。
通过以前所学,继承一样可以解决这个问题。
那么装饰和继承有什么区别?
继承方式增强每一个子类对象。
Writer
|--FileWriter
|--BufferedFileWriter。
|--MediaWriter
|--BufferedMediaWriter
|--DataWriter
|--BufferedDataWriter
这样的设计可以完成基本需求,但是导致了继承体系的臃肿,而且子类功能的重复。
--------
class BufferedWriter
{
char[]
BufferedWriter(FileWriter w)
{
}
BufferedWriter(MediaWriter w)
{
}
BufferedWriter(DataWriter w)
{
}
public void write()
{
}
}
class BufferedWriter extends Writer
{
BufferedWriter(Writer w)
{
}
public void write()
{
}
}
Writer
|--FileWriter
|--MediaWriter
|--DataWriter
|--BufferedWriter
*/
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.chifan();
//SuperPerson sp = new SuperPerson(p);
//sp.superChifan();
}
}
分享到:
相关推荐
文件读写 BufferedReader BufferedWriter 去除代码后面空格 简单 readLine newLine flush
在Java编程语言中,`BufferedReader`和`BufferedWriter`是两个非常重要的类,它们分别位于`java.io`包中,用于提高字符输入和输出的效率。这两个类继承自抽象基类`Reader`和`Writer`,为读写操作提供了缓冲区功能。 ...
JavaDemo可能展示了如何使用FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等类进行文件操作,以及使用InputStreamReader、OutputStreamWriter进行字符流转换。 5. **多线程**:Java提供了...
5. **输入/输出(I/O)**:Java的I/O流用于读取和写入数据,如FileReader、FileWriter、BufferedReader、BufferedWriter等。示例将演示如何读写文件,以及如何进行网络通信。 6. **多线程**:Java内置了对多线程的...
5. BufferedReader、BufferedWriter、FileReader、FileWriter等类:这些类分别对Reader和Writer接口进行了具体的实现,并且同样利用了装饰器模式。 装饰器模式的优点包括: - 扩展功能的灵活性。可以方便地为对象...
Java的IO流类库广泛使用了装饰器模式,如`BufferedReader`和`BufferedWriter`。 6. **代理模式**:为其他对象提供一种代理以控制对该对象的访问。在Java中,静态代理和动态代理(`java.lang.reflect.Proxy`)都是...
6. 输入输出流:如FileReader、FileWriter、BufferedReader、BufferedWriter等,用于读写文件。 7. 多线程:创建Thread对象,实现Runnable接口,理解同步和互斥的概念。 8. 文件和目录操作:如File类的使用,创建、...
- 装饰模式(Decorator pattern):动态地给对象添加新的行为或责任,如Java IO中的`BufferedReader`和`BufferedWriter`。 2. **设计模式的含义**: 设计模式是对在软件设计过程中遇到的常见问题的解决方案,是可...
除了使用`BufferedReader`和`BufferedWriter`,Java 7引入了try-with-resources语句,这是一种更简洁且安全的资源管理方式,可以自动关闭流。以下是使用try-with-resources的示例: ```java import java.io....
在Java IO流中,BufferedReader和BufferedWriter就是装饰器模式的典型应用。 5. **适配器模式**:将一个类的接口转换成客户希望的另一个接口。Java的Adapter类可以用来兼容不兼容的接口。 6. **代理模式**:为其他...
以下是一份详细的Java读写文本文件的示例代码,以及相关的知识点讲解。 首先,让我们理解读取文本文件的基本步骤: 1. **打开文件**:使用`java.io.File`类创建一个表示文件的对象。例如: ```java File file = ...
以及BufferedReader和BufferedWriter,这两个类提供了缓冲功能,可以提高读写性能。 2. **读取文本文件**: 使用FileReader和BufferedReader组合来读取文本文件。首先创建一个FileReader对象,然后用它初始化...
"文件流的读取与写入"这个主题主要涵盖了如何使用Java中的BufferedReader和BufferedWriter类来高效地处理文件内容。这两个类属于Java.io包,它们提供了缓冲功能,可以提高文件操作的性能。 BufferedReader是用于...
Java的`BufferedReader`和`BufferedWriter`是装饰`Reader`和`Writer`的例子。 5. **使用工厂模式的好处**:增加了对象创建的封装性,允许替换或扩展产品实现,提高了系统的可扩展性和可维护性。 6. **静态方法与非...
Java I/O系统包括流的概念,如FileInputStream, FileOutputStream, BufferedReader, BufferedWriter等。示例将演示读写文件,处理网络数据,以及使用对象序列化等。 6. **集合框架**: Java集合框架包括List, Set...
学习如何使用FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等类进行文件操作,以及使用InputStreamReader、OutputStreamWriter进行字符流转换。 6. **多线程**:Java提供了内置的多线程支持...
示例代码会展示如何使用FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等类进行文件读写。 7. **网络编程**:Java的Socket编程接口允许开发网络应用程序,如客户端和服务器端的通信。通过示例...
它们没有缓冲区,因此通常与`BufferedReader`和`BufferedWriter`一起使用,以提高性能。 6. **FileInputStream和FileOutputStream**: 这两个类是字节流,用于直接读写文件的字节数据。`FileInputStream`从文件...
总结,Java通过`BufferedReader`、`BufferedWriter`、`PrintWriter`和`Scanner`等类提供了丰富的API来读写文本文件。理解这些基本操作对于任何Java开发者来说都是至关重要的,它们构成了处理文件的基础。通过结合...