》》代码复用是面向对象程序设计语言所提供的最了不起的优点之一。
》》最简单地复用某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新的类中。我们
称其为“创建一个成员对象”。新的类可以由任意数量、任意类型的其他对象以任意可以实现新类中想要的功能的方式组成。
因为是在使用现有的类合成新的类,所以这种概念被称为“组合”,如果组合是动态发生的,那么它通常被称为聚合。
》》组合带来了极大的灵活性。新类的成员对象通常被声明为 private ,使得使用新类的客户端程序员不能访问它们。这也
使得你可以在不干扰现有客户端代码的情况下,修改这些成员。也可以在运行时修改这些成员对象,以实现动态修改程序的
行为。
(继承并不具有这样的灵活性,因为编译器必须对通过继承而创建的类施加编译时的限制)
》》在建立新类时,应该首先考虑组合,因为它更加简单灵活。如果采用这种方式,设计会变得更加清晰。一旦有了一些经验
之后,便能够看出必须使用继承的场合了。