1、需求分析:
2、增强一个类的功能的时候,我们可以选择使用继承。
通过继承实现增强一个类的功能优点:代码结构清晰,通俗易懂。
----------------| Reader -------------------|BufferedReader ---------------------|BufferedLineNum 带行号 ---------------------|BufferedSemi 带分号 ---------------------|BufferedQuto 带引号 ---------------------|子类
缺点:使用不灵活,会导致继承的体系过于庞大
class BufferedLineNum extends BufferedReader{ int count=1; public BufferedLineNum(Reader in) { super(in); } @Override public String readLine() throws IOException { String line=super.readLine(); if(line==null) return null; line=count+" "+line; count++; return line; } } class BufferedSemi extends BufferedReader{ public BufferedSemi(Reader in) { super(in); } @Override public String readLine() throws IOException { String line=super.readLine(); if(line==null) return null; line=line+";"; return line; } }
3、装饰者模式的引出:
原文:http://www.cnblogs.com/lyjs/p/5004717.html