对象增强的手段:
*继承
缺点:增强的内容是不能改变的
被增强的对象也是不能改变的
*装饰者模式
增强的内容是不能改变的
被增强的对象是可以改变的
不知道被增强对象的具体类型也可以使用
特点: 是你,还有你,一切拜托你。增强点!
*动态代理(AOP)
被增强的对象可以切换 :Service
增强的内容也可以切换:事务处理
class MyInputStream extends InputStream{ /* 可以实现文件的加密 */ private InputStream in; private int key; public MyInputStream(InputStream in,int key){ this.in=in; this.key=key; } @Override public int read() throws IOException { return in.read()+key; } }