装饰模式是一种给已有的对象添加额外功能的常用方法:
举个列子说明:
1. 创建个Request接口类Request.java
2.接口的实现类:RequestImp.java
3.包装了输出方法Servlet.java:
4. RequestFactory.java类为了创建request对象
5. test.java测试类:
运行结果:
hello, Tom
问题来了,那么现在我想让他输出HELLO,TOM 而request对象又没有这个方法;那我们可以给request这个对象添加一个输出大写的方法:
首先:写一个实现request接口的RequestWraper.java类,将request这个对象作为接口Requset类型的参数传进来,并通过构造器将它初始化,
最后创建一个方法为request对象添加新的功能添加(通过对象的原有方法得到字符串,再将得到的值调用听哦UpperCase()方法得到最终结果)
最后在test.java中输入注释掉的那行代码,则得到HELLO,TOM
简单总结就是对对象的方法重写了,只不过对象做为参数来获取原来的值,从而对值进行改变的操作。写的不好,还望指点。。