August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
你可能注意到所有的例子中聚合和联合的区别通常是模糊的。这也说明大多数设计决策都是在考虑是使用联合还是聚合。
例如,桌面计算机系统例子可用来描述联合关系,但也包含了一些聚合关系。尽管计算机主机、显示器、键盘以及鼠标之间的交互是联合关系,但计算机主机本身则代表了聚合。你只看到了计算机主机,但它其实是由其他对象组成的一个复杂系统,它包括了集成电路、主板、显卡等。
一个Employee对象可能会由Address对象和Spouse对象组成。你可能认为Address对象是聚合关系(基于它是Employee对象的一部分),而Spouse对象则是联合关系。为了阐述,假设该雇员和其配偶都是同一个公司的雇员。如果雇员被解雇了,那么其配偶仍然在系统中,但破坏了联合关系。
同样在立体音响例子中,接收器、扬声器以及CD播放器是联合关系。扬声器和CD播放器自身则是其他对象(比如电源插头)聚合起来的结果。
在汽车例子中,尽管引擎、火花塞和门代表组合关系,而音响系统则代表了联合关系。现实中,汽车和桌面计算机都是聚合和联合的混合体。
没有绝对答案
事实上进行设计决策时并不一定有一个绝对正确的答案。设计并不是一门精密的科学。不过我们可以使用一些通用规则,这些规则不难使用,而且能帮助我们快速开始。
Read now
Unlock full access