A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静丶 中级黑马   /  2014-6-23 00:44  /  1492 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

装饰模式是个怎样的模式?装饰类和继承是什么区别呀~?

8 个回复

倒序浏览
1、继承相对装饰来说,体系臃肿很多
回复 使用道具 举报
装饰设计模式:对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。装饰是构造函数参数传递进行增强,如果为了某个功能而产生子类(继承)那么那个体系是非常臃肿的
例如:你有个对象有个功能 是在N年前建立的,如今你觉得功能不够用了 写个类把对象传进来就可以解决问题了 如果这个功能写错了 我就把自己写的功能去掉又不影响以前的功能灵活性相当强的。
装饰模式比继承要灵活。避免了继承体系臃肿。而且降低了类于类之间的关系。装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。所以装饰类和被装饰类通常是都属于一个体系中的
回复 使用道具 举报
用非常通俗易懂的话说,我感觉装饰模式就是对已有对象的功能进行增强.
回复 使用道具 举报
你换个角度想 如果你不用装饰设计模式会咋样
回复 使用道具 举报
hadfs 发表于 2014-6-23 01:20
装饰设计模式:对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能 ...

学习了~谢谢~:)
回复 使用道具 举报
表示还没看到这里来
回复 使用道具 举报
继承基类的所有接口,同时也继承内容,而你所说的装饰,只是注入对象然后在扩增某接口。如果对于注入类的该接口修改,那么你所扩展的部分也要修改,所谓动一发而至全身。对于全局考虑,装饰耦合度高。不建议首先考虑他。
回复 使用道具 举报
我来学习了!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马