【设计模式】装饰者模式

对于装饰者模式,很好的体现了设计原则的封闭开放性原则,当需要对新需求进行实现的时候,不需要对于现在的代码进行更改,就可以达到需求。

装饰者顾名思义,就是对于原有的对象进行一系列的修饰。
以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方法还是父类中的方法,但是已经对父类的方法进行了一定的补充,这就是一个装饰者模式的小例子。

posted @ 2017-03-14 17:02  江湖小_虾  阅读(103)  评论(0)    收藏  举报