将抽象与实现分离,使得他们可以独立的变化;
通俗来说,通过组合来桥接他们的维度或行为;
抽象和实现的分离;
优秀的扩展能力,符合开闭原则。
增加系统设计和理解难度;
使聚合关系建立在抽象层,要求开发者对抽象进行设计与编程。