优先使用组合 而不是继承?
2015-05-25 11:07
351 查看
面向对象功能复用的两种最常用技术是类继承和对象组合(object
composition)。
继承和组合都能达到一个代码复用的效果,但是类的继承通常是白箱复用,对象组合通常为黑箱复用。
类继承是白箱复用,被继承的类对其继承者是透明的。因此会破坏其内部结构。之间的依赖程度高。
对象组合是黑箱复用,对象之间对彼此的结构不清楚,只需要关心接口。对象之间的依赖低。
因此优先使用对象组合。
composition)。
继承和组合都能达到一个代码复用的效果,但是类的继承通常是白箱复用,对象组合通常为黑箱复用。
类继承是白箱复用,被继承的类对其继承者是透明的。因此会破坏其内部结构。之间的依赖程度高。
对象组合是黑箱复用,对象之间对彼此的结构不清楚,只需要关心接口。对象之间的依赖低。
因此优先使用对象组合。
相关文章推荐
- 优先使用对象组合,而不是类继承
- 优先使用组合对象,而不是继承"的理解
- 为什么要优先使用组合 而不是继承?
- 优先使用对象组合,而不是类继承
- 设计模式(笔记)优先使用对象组合而不是类继承
- 优先使用对象组合,而不是使用继承
- 为什么优先使用组合而不是继承
- 为什么要优先使用组合而不是继承 .
- 为什么要优先使用组合而不是继承
- 优先使用对象组合而不是类继承
- 面向对象的设计法则-法则1:优先使用(对象)组合,而非(类)继承
- 面向对象的设计法则(1)——优先使用(对象)组合,而非(类)继承(转)
- 面向对象设计三大原则(封装变化点,对接口进行编程,多使用组合而不是继承)
- 一些面向对象的设计法则-法则1:优先使用(对象)组合,而非(类)继承
- 面向对象的设计法则(1)——优先使用(对象)组合,而非(类)继承
- 面向对象设计三大原则(封装变化点,对接口进行编程,多使用组合而不是继承)
- 为什么要优先使用组合而非继承?
- 优先使用(对象)组合,而非(类)继承
- 在Angular.js使用组合+依赖注入而不是继承
- [阅读笔记]面向对象的设计法则--法则1:优先使用(对象)组合,而非(类)继承 Favor Composition Over Inheritance