您的位置:首页 > 其它

【设计模式】装饰模式与继承的不同

2015-07-21 10:09 197 查看
百度一下,你就知道什么是装饰模式。如果你还不知道什么是继承,接着百度。这篇博文讲的不是什么是装饰模式,也不是讲什么是继承,讲的是装饰模式与继承模式的不同。

要讲装饰模式和继承的不同,首先需要来讲讲装饰模式和继承模式的相同点。否则,风马牛不相及的东西,你为什么要拿来比较呢?其实继承和装饰模式都是为了对某个类行为或者属性的扩展。比如一个人,他本来只会说话,但是你现在需要他具备学习,走路,唱歌,跳舞,巴拉巴拉一系列的能力,我们可以通过装饰模式和继承者两种方式来实现。

讲完了相同点,要开始讲不同点了。做同一件事有两种方法,显而易见是肯定存在不同之处的。否则,另外一种方式要来干嘛呢。而且设计模式不是称为最佳实践么。肯定是有它存在的道理的。现在来说说他们的不同之处。首先java中只支持单根继承,如果需要对父类进行功能扩展的话,不同的功能可能会出现大量的子类,如果子类还需要扩展的话,会显得继承体系相当臃肿,但是装饰模式就不会,装饰模式其实和组合设计模式类似。其二,也是我认为比较好用的一点就是:继承你需要找到具体实现类,但是装饰你并需要知道具体实现类是谁,你只需要传入引用即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: