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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑子 中级黑马   /  2014-6-13 21:56  /  1489 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在设计模式中有一个包装类设计模式,同时通过继承也能完成包装类的功能需求。请问包装模式和继成在本质上有什么区别?

9 个回复

倒序浏览
答案啊  你在何方?
回复 使用道具 举报
  
继承是什么?OOP 三大特征之一

装饰设计模式(包装设计)?为了解决实际中问题出现的设计思想

  事例:流对象作为事例
   读取流--抽象
      文本读取流TextReader
      音频读取流SoundReader
      游戏读取流GameReader
      视频读取流VideoReader

  继承方式扩展原有的流对象
      TextReader
         extends TextReader 重写方法
      SoundReader
         extends SoundReader 重写方法
      GameReader
         extends GameReader 重写方法
      VideoReader
         extends VideoReader 重写方法

  以上的继承体系,庞大,而且臃肿,对于开发者,不好用,对于学习的,也不好学

  用装饰的方式扩展原有的流对象
    TextReader
    SoundReader
    GameReader
    VideoReader

    定义一个扩展流对象,你传递哪一个流,扩展哪一个流
    BufferedReader(读取流)
    BufferedReader(TextReader)
    BufferedReader(GameReader)

  综上所述,两个方法,对原有流对象进行扩展后
  继承的方式,庞大臃肿
  装饰的方式,结构简单,并且更加容易学习和使用。
回复 使用道具 举报
.....................................................................
回复 使用道具 举报
怎么说呢,你继承只能继承一个类,那么以后你再想继承其他类就不行了 代码的扩展性就不高了
包装类的话就没有这个顾忌了
回复 使用道具 举报
See_the_sun 发表于 2014-6-15 18:49
继承是什么?OOP 三大特征之一

装饰设计模式(包装设计)?为了解决实际中问题出现的设计思想

你们石老师讲的好仔细啊,羡慕啊
回复 使用道具 举报
love~陌 发表于 2014-6-15 19:01
你们石老师讲的好仔细啊,羡慕啊

是啊,反正老师都讲过了。对的就贴上来。这个案例不错。你说呢。。大神   博。。又要DOTA吗?
回复 使用道具 举报
黑子 中级黑马 2014-6-15 22:04:16
8#
可劲造吧!骚年们!
回复 使用道具 举报
See_the_sun 发表于 2014-6-15 20:21
是啊,反正老师都讲过了。对的就贴上来。这个案例不错。你说呢。。大神   博。。又要DOTA吗? ...

头疼~打篮球太累了
回复 使用道具 举报
黑子 发表于 2014-6-15 22:04
可劲造吧!骚年们!

黑子明天见~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马