1、什么是复合?

  复合是类型之间的一种关系,某种类型的对象内含其他类型的对象。

2、为什么需要复合,他解决什么问题?

  为了代码复用。

3、复合有两层含义:Has-A和根据某物实现出。在应用域中,表示Has-A,比如:Person有一个地址,有一个所属公司。在实现域,表示根据某物实现出,比如缓冲区,互斥器等概念。

4、复合可以分为:关联,聚集,组合。关联是1对1的关系,聚集和组合是多对1的关系。组合比聚集的关系更紧密,举例来说,大雁聚集成雁群,两个翅膀(和其他的部位)组合成大雁。

5、关联与依赖有区别,关联表示内含一个对象,依赖表示执行一个动作的时候,依赖形参。比如:Person关联地址,Person画图依赖Pen,Person::Draw(Pen pen)。

04-22 12:37