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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

装饰模式与继承有什么区别?不解,求教.

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

4 个回复

倒序浏览
装饰模式使用原来的功能,实现更强的功能,如IO流中的的read(),每次读取一个字符,使用装饰模式后,变成readline();可以可以读一行了...功能变强大了....对不对...继承就不说了...你应该懂
回复 使用道具 举报
举个例子说明哈~~可能不太恰当
1.装饰模式:你买个手机壳包在IPhone4上,组成一个拥有新外形的手机,但是打电话发短信什么的功能都是调用Iphone4的,只是对外观这个方法show()进行了装饰,外壳今天可以包Iphon4,明天也可以拿去包Iphone3,这就是装饰设计,可以对某一类对象进行装饰

2.继承:今天你用Iphone4,明天Iphone5出来了,但是是在Iphone4的基础上改进的,拥有Iphone4的所有功能,但是更强大了,就是说复写了父类的方法.

这么说...希望能帮到你..哈哈,大清早起来刚想的例子..可能不太恰当

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
* 装饰设计模式:
* 当想要对已有的对象进行功能增强时,
* 可以定义类,将已有的对象传入,基于已有的功能,并提供加强的功能
* 那么自定义的类就是装饰类。
*
* 通常Superperson和person同时实现同一个接口或同一个类
*
* 装饰类通常会通过构造方法接收被装饰的对象
* 并基于被装饰的对象的功能提供更强的功能。
*
* 装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过是
* 提供了更强的功能,所以装饰类和被装饰类通常都是属于一个体系中的
*
* */

楼主,这是毕老师上课讲解的笔记,希望能帮到你!

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
装饰类的作用我想不必说了,楼上都说的很清楚。
关于什么时候用到装饰类,什么时候用到继承,这里我只是表达一下自己的意见:
装饰的出现时出于增强现有类的功能的但是两者之间并无联系,我们需要增强功能的时候用一下,就像一个工具。而继承的出现则是为了体现两个类之间的那种紧密联系的关系的,就像父子关系。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马