黑马程序员技术交流社区

标题: 看毕老师讲的IO部分的装饰设计模式,没有弄明白,麻烦各... [打印本页]

作者: 隔夜修书    时间: 2014-9-5 23:53
标题: 看毕老师讲的IO部分的装饰设计模式,没有弄明白,麻烦各...
看毕老师讲的IO部分的装饰设计模式,没有弄明白,麻烦各位大神明示。

作者: zhangxun    时间: 2014-9-6 00:10
同求。。。。。。
作者: 幻雪    时间: 2014-9-6 00:14
我觉得就像一个把包装一般的东西再重新包装一下,对原先方法的基础上进行优化
作者: 黑马的小菜鸟    时间: 2014-9-6 00:56
四、装饰设计模式:

1、简述:当想对已有对象进行功能增强是,可定义类:将已有对象传入,基于已有对象的功能,并提供加强功能,那么自定义的该类称之为装饰类。即对原有类进行了优化。

2、特点:装饰类通常都会通过构造方法接收被装饰的对象,并基于被装饰的对i型那个的功能提供更强的功能。

3、装饰和继承的区别:

1)装饰模式比继承要灵活,通过避免了继承体系的臃肿,且降低了类与类间的关系。

2)装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能,所以装饰类和被装饰的类通常都是属于一个体系。

3)从继承结构转为组合结构。

注:在定义类的时候,不要以继承为主;可通过装饰设计模式进行增强类功能。灵活性较强,当装饰类中的功能不适合,可再使用被装饰类的功能。

        要继承相应的父类,就需要将所有的抽象方法实现,或交给子类实现。

示例:其中MyBufferedReader的例子就是最好的装饰设计模式的例子
作者: Peach2014    时间: 2014-9-6 01:11
装饰设计模式在视频中的解释是:当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有功能并提供加强功能,那么自定义的该类称为装饰类。
例如BufferedWriter就是FileWriter的装饰类,为FileWriter提供了缓冲区的功能,提高文件写入的效率。
其中就是将FileWriter作为参数传递给了BufferedWriter。
这就好比一个人想挖一个坑,如果他自己动手去挖,那就只能用手慢慢刨!但是现在来了一台挖掘机,他就钻到挖掘机中用挖掘机来挖坑。挖掘机就是他的装饰类。




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