【设计模式】装饰者模式
对于装饰者模式,很好的体现了设计原则的封闭开放性原则,当需要对新需求进行实现的时候,不需要对于现在的代码进行更改,就可以达到需求。
装饰者顾名思义,就是对于原有的对象进行一系列的修饰。
以java.io库中的一个小例子理解:
package com.chapter.three;
import java.io.FileInputStream;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
public class LowerCaseInputStream extends FilterInputStream {
protected LowerCaseInputStream(InputStream in) {
super(in);
}
@Override
public int read() throws IOException {
int c = super.read();
return c == -1 ? c : Character.toLowerCase((char) c);
}
public static void main(String[] args) {
int c;
try {
InputStream inputStream = new LowerCaseInputStream((new FileInputStream("test.txt")));
while ((c = inputStream.read()) != -1) {
System.out.println((char)c);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
这里用LowerCaseInputStream这个自定义类,对于io库中的FileInputStream进行了包装,调用的read方法还是父类中的方法,但是已经对父类的方法进行了一定的补充,这就是一个装饰者模式的小例子。

浙公网安备 33010602011771号