本例使用组合关系(松耦合)。
执行结果:
年龄为20的盖伦用AK-47攻击敌方。
Process finished with exit code 0
组合关系和继承关系相比,前者的主要优势是不会破坏封装,当类 Hero 与 类 Weapon 之间为组合关系时,类 Weapon 封装实现,仅向类 Hero 提供接口。而当类 Hero 与 类 Weapon 之间为继承关系时,类 Weapon 会向类 Hero 暴露部分实现细节。
在软件开发阶段,组合关系的编码量没能比继承关系少,但是到了软件维护阶段,由于组合关系使系统具有较好的松耦合性,系统维护会更容易。
组合关系的缺点是比继承关系要创建更多的对象。
转载: 原文(点我)