通过复合塑模出has-a或"根据某物实现出"
复合(compositon)是类型之间的一种关系,当某种类型的对象内含它种类型的对象,便是这种关系。
例如:
class Address { ... };
class PhoneNumber { ... };
class Person
{
public:
...
private:
std::string name;
Addresss address;
PhoneNumber voiceNumber;
PhoneNumber faxNumber;
};
public继承带有is-a的意义。复合意味这has-a或者is-implemented-in-terms-of。
请记住:
- 复合的意义和public完全不同。
- 在应用域,复合意味着is-a。在实现域,复合意味is-implemented-in-terms-of。