2 baidu 30000217 baidu_30000217 于 2016.03.05 01:48 提问

装饰模式遇到的问题,大神求教

求问大神一个关于设计模式的问题,我用装饰模式实现给一个人的具体对象穿衣服,穿鞋子,那么问题来了,我怎么实现把鞋子脱了

2个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.05 08:23
已采纳

装饰模式是对原有功能的增强,它的本质是不改变原有类结构的情况下对原来的某个功能的增强处理。
所以就你描述的需求,它还是只能提供穿衣服,穿鞋子的原有功能,但是可能有增强操作,比如穿衣服之前先把衣服整平,穿鞋后擦擦鞋子。它不会凭空多出一个新功能的,因为它实现的还是你原有的接口,只是实现功能超过原有功能而已。

baidu_30000217
baidu_30000217 谢谢了
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.03.05 02:28

求问大神一个关于面向对象的问题:我没有对象,面向对象能帮我找对象么?

言归正传,如果你希望“脱衣服”,你应该用职责链模式而不是装饰模式。

baidu_30000217
baidu_30000217 谢谢提醒
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!