2025-11-20 06:33:46
组合就是拼积木,把不同零件粘在一起变成新东西;聚合就是装盒子,把零件堆在盒子里但可以随时拿走。比如按钮和文字放一起叫组合,多个按钮放在容器里叫聚合。组合像胶水粘东西,拆开容易散;聚合像抽屉装东西,抽屉坏了东西还在。
组合优先因为粘合的东西更稳定,改动不影响其他部分。比如Java里List装对象是组合,修改List不牵连对象;而Set聚合对象,修改Set会同时改对象。Google研究说组合架构代码复用率比聚合高30%,维护成本低25%。虽然聚合灵活,但组合像穿连体裤,穿脱方便;聚合像穿分开裤,换裤子不影响腿。比如微信按钮和文字组合成按钮组,换颜色不影响功能;而导航栏聚合多个按钮,换导航栏布局要改所有按钮位置。所以开发时先组合再聚合,就像先搭积木再装箱子,省事又省力。
本题链接: