黑马程序员技术交流社区

标题: 装饰模式? [打印本页]

作者: 静丶    时间: 2014-6-23 00:44
标题: 装饰模式?
装饰模式是个怎样的模式?装饰类和继承是什么区别呀~?
作者: 小太阳    时间: 2014-6-23 01:16
1、继承相对装饰来说,体系臃肿很多
作者: hadfs    时间: 2014-6-23 01:20
装饰设计模式:对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。并基于被装饰的对象的功能,提供更强的功能。装饰是构造函数参数传递进行增强,如果为了某个功能而产生子类(继承)那么那个体系是非常臃肿的
例如:你有个对象有个功能 是在N年前建立的,如今你觉得功能不够用了 写个类把对象传进来就可以解决问题了 如果这个功能写错了 我就把自己写的功能去掉又不影响以前的功能灵活性相当强的。
装饰模式比继承要灵活。避免了继承体系臃肿。而且降低了类于类之间的关系。装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。所以装饰类和被装饰类通常是都属于一个体系中的
作者: 初升的晨曦    时间: 2014-6-23 09:01
用非常通俗易懂的话说,我感觉装饰模式就是对已有对象的功能进行增强.
作者: 张益达    时间: 2014-6-23 10:07
你换个角度想 如果你不用装饰设计模式会咋样
作者: 静丶    时间: 2014-6-23 13:26
hadfs 发表于 2014-6-23 01:20
装饰设计模式:对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能 ...

学习了~谢谢~:)
作者: wyg129911    时间: 2014-6-23 13:32
表示还没看到这里来
作者: 413363772    时间: 2014-6-23 16:58
继承基类的所有接口,同时也继承内容,而你所说的装饰,只是注入对象然后在扩增某接口。如果对于注入类的该接口修改,那么你所扩展的部分也要修改,所谓动一发而至全身。对于全局考虑,装饰耦合度高。不建议首先考虑他。
作者: 任黎明    时间: 2014-6-23 21:47
我来学习了!!!!!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2