码迷,mamicode.com
首页 > 其他好文 > 详细

学习日记之桥接模式和多重继承

时间:2014-08-09 00:16:46      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:使用   数据   ar   问题   cti   学习   ef   关系   

桥接模式:


(1),继承很多情况下会带来麻烦,比如:对象的继承关系在编译时就定义好了,所以无法在运行时改变从弗雷继承的实现。子类的实现与它的弗雷有非常紧密的依赖关系,以至于弗雷视线中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类代替。这种依赖关系限制了灵活性并最终限制了复用性。

(2),合成/聚合服用原则(CARP):尽量使用合成/聚合,尽量不要使用类继承。

(3),聚合表示一种弱的‘拥有’关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分;合成则是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。

(4),合成/聚合服用原则的好处:优先使用合成/聚合有助于你保持每个类被封装,并被集中在单个任务上。这种类与类继承层次会保持较小规模,并且不太可能增长为不可控制得庞然大物。

(5),桥接模式(Bridge):将抽象部分与它的实现部分分离,使他们都可以独立的变化。

(6),抽象与它的实现分离并不是让抽象类与派生类分离,因为这样没有任何意义。实际指的是抽象类和它的派生类用来实现自己的对象。

(7),实际系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减少他们之间的耦合。


Effective C++:

1:明智而审慎地使用多重继承

(1),多重继承比单一继承复杂。它可能导致新的歧义性,以及对 virtual 继承的需要。

(2),virtual 继承会增加大小、速度、初始化(及赋值)复杂度等等成本。如果 virtual base classes 不带任何数据,将是最具使用价值的情况。

(3),多重继承的确有正当用途。其中一个情节涉及“public 继承某个 Interface class" 和”private 继承某个协助实现的类“的两相组合。

学习日记之桥接模式和多重继承,布布扣,bubuko.com

学习日记之桥接模式和多重继承

标签:使用   数据   ar   问题   cti   学习   ef   关系   

原文地址:http://blog.csdn.net/superzhaifd/article/details/38445915

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!