多类关联技术问询:两个类能否分别与第三个类建立关联?
两个类分别与第三个类建立关联的可行性
当然可以,这种场景在面向对象设计里十分常见——当两个不同的业务实体都需要依赖同一个通用数据类来存储特定属性时,就会出现这种多对一的独立关联关系。
示例说明
以你提到的Game、Character和Position类为例:
Position作为通用坐标数据类,包含x、y(或x、y、z)等属性,负责封装位置信息的存储与基础计算逻辑。Game类用Position记录游戏世界的全局视角位置、地图出生点位置等全局级位置数据。Character类用Position记录角色在游戏世界的实时坐标、目标移动点位置等角色级位置数据。
UML类图示意
(对应你提到的配图,结构大致如下)
+----------------+ +----------------+ | Game | | Character | +----------------+ +----------------+ | - position: Position | | - position: Position | +----------------+ +----------------+ | | | | +---------------------------+ | +----------------+ | Position | +----------------+ | - x: int | | - y: int | +----------------+
这里Game和Character各自与Position建立了独立的关联关系,两者的position属性是各自实例化的Position对象,彼此互不影响——比如调整游戏全局视角位置,不会改变角色的当前坐标,反之亦然。
补充说明
你提到的关联类(Association Class)是用于记录关联关系本身附加属性的场景(比如Student和Course的关联类Enrollment记录成绩、选课时间),但这和两个类分别关联第三个类的场景并不冲突,两者可根据业务需求独立使用或结合使用。
内容的提问来源于stack exchange,提问作者user22508348
相关产品推荐
相关产品推荐

