1、继承关系。
例如人分为男人和女人,则男人类和女人类是从人类继承而来的。
在C++中,直接用编译器支持的类的继承来实现。
例如人分为男人和女人,则男人类和女人类是从人类继承而来的。
在C++中,直接用编译器支持的类的继承来实现。
2、聚合关系。
例如人是由脑,躯干和四肢构成的,则人类里就包括了脑类,躯干类和四肢类。
在C++中,用一个类包含其他类的实例来实现。
例如人是由脑,躯干和四肢构成的,则人类里就包括了脑类,躯干类和四肢类。
在C++中,用一个类包含其他类的实例来实现。
3、引用关系。
例如人要洗衣服,人就委托洗衣机来进行,而人只需要下一条洗衣的命令就可以了。
在C++中,用一个类包含其他类的指针,或者输入其他类指针的参数来实现。
例如人要洗衣服,人就委托洗衣机来进行,而人只需要下一条洗衣的命令就可以了。
在C++中,用一个类包含其他类的指针,或者输入其他类指针的参数来实现。
看了设计模式,它在第一章讲了一些类关系的比较,好像复杂了一些。我按照自己的思路作了如上的总结。
再看看这3种关系,前2种实际是客观事物本身决定了的,是稳定的关系。在逻辑学里有内涵和外延的概念,继承实际上是外延的概念,聚合实际上是构成的概念。对于最后一种引用关系,则有很大的变化,有很多不同的方式。设计模式实际主要在玩弄引用关系。
现实中也是这样,比如一个公司,他在集团的地位在一段时间内基本稳定(继承关系中基本不变),他包含的业务部门和所拥有的员工也比较稳定(聚合关系稳定)。但他的运作方式则可以灵活变化,比如他可以自己去管理一个保安部门(自己实现),也可以委托一个保安公司(委托别的类来实现),诸如此类,导致了复杂的社会关系(设计模式)。
现实中也是这样,比如一个公司,他在集团的地位在一段时间内基本稳定(继承关系中基本不变),他包含的业务部门和所拥有的员工也比较稳定(聚合关系稳定)。但他的运作方式则可以灵活变化,比如他可以自己去管理一个保安部门(自己实现),也可以委托一个保安公司(委托别的类来实现),诸如此类,导致了复杂的社会关系(设计模式)。