包装器模式-开源代码实例

 

1,开源代码实例

HttpServletRequestWrapper

ServletRequestWrapper:

  使用(ServletRequestHttpServletRequest对象实现了servletrequest规范相关的方法;

HttpServletRequestWrapper:

  除了继承了以上ServletRequestWrapperservletrequest规范的相关方法外,

  使用 HttpServletRequest对象实现了httpservletrequest规范中除了servlet规范之外的方法;

 

 

2,开源代码实践

2-1,需求

向项目发出某个请求,如http://localhost:8080/oldFriend?giveMeMoney=10

希望项目获得myMoneyvalue时,扩大为10倍,比如此处按道理获得的value10,但是需求完成后,获得value10*10=100

2-2,原逻辑

 

2-3,设计方案

如右图,通过filter统一处理请求参数:

2-4,实现

 

 

 

 

 

3,总结

包装器的其他应用案例:

如做网上的算法题时,经常是通过控制台来输入测试用例,读取用例一般使用如下字符流:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

System.in         字节流

InputStreamReader: 字节流 --> 字符流

BufferedReader       字符流 --> 缓冲型字符流

 

包装器模式:

  按网上的说法类似俄罗斯套娃,外层套娃除了提供内层套娃的功能,

较之还会附加一些功能(可能是对内层套娃功能的改造,可能是多出一些其他功能,且很多情况下多出的功能底层也来自于内层套娃)。

 

posted @ 2021-12-21 16:56  seeAll  阅读(72)  评论(0编辑  收藏  举报