java中,对于包装设计模式有个疑问,为什么不能直接继承?
巴扎黑
巴扎黑 2017-04-18 09:13:18
[Java讨论组]

看书时,遇到这样一段话——“HttpServletResponseWrapper类本身并没有修改或扩充被包装的HttpServletResponse对象的功能,它的主要作用是为HttpServletResponse提供默认的实现。对于用户自定义的HttpServletResponse的包装类,只要继承HttpServletResponseWrapper类,然后覆盖它的方法,就能修改后扩充被包装的HttpServletResponse对象

针对斜体加粗的文字,使用了包装类,到最后还是要继承Wrapper类,才能起到修改或扩充的目的,那为什么一开始直接继承HttpServletResponse,使用包装类不是绕路了吗?

巴扎黑
巴扎黑

全部回复(1)
阿神

在stackoverflow上看到相关问题,姑且转述一下吧。
HttpServletResponse是一个接口,所以你最后继承的是一个接口而不是具体的实现类,所有的方法都要自己重写(这应该不是一般用途的目的吧)。所以就有了HttpServletResponseWrapper这个实现类,你可以继承,重写你需要加入自己逻辑的方法(装饰者模式)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号