装饰流

装饰类

装饰设计模式:
当想要对已有对象进行功能增强时,可以定义类,
将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的类称之为装饰类。

模式举例:装饰类通常通过构造方法接收被装饰的对像,并提供能强的功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Person
{
public void chi()
{
System.out.println("吃");
}
}
class SuperPerson
{
private Person p;
SuperPerson(Person p)
{
this.p = p;
}
public void superChi()
{
System.out.println("吃吃吃");
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
* 此代码演示的是装饰类LineNumberReader中的部分方法
* 主要作用是为了在读取每行的时候可以加上行数
public class LineNumberReaderDemo {
public static void main(String[] args) {
FileReader fr = null;
LineNumberReader lnr = null;
try {
fr = new FileReader("C:\\Users\\王旭\\Desktop\\JAVA笔记\\12.IO流\\demo.txt");
lnr = new LineNumberReader(fr);
String line = null;
lnr.setLineNumber(23);//修改行数的初始基准数值
while((line = lnr.readLine())!=null)
{
System.out.println(lnr.getLineNumber()+":"+line);
}

}
catch (IOException e)
{
System.out.println("IO异常"+e.toString());
}
finally {
if(fr != null)
{
try {
lnr.close();
} catch (IOException e) {

e.printStackTrace();
}
}
}
}
}