hjtracy1
2010-10-09 02:16
浏览 368
已采纳

小汽车和小汽车的轮子 发动机 车门等是合成关系还是聚合关系

[img]http://dl.iteye.com/upload/attachment/327488/db80fa9b-6d1a-38bb-8cd8-d02945e77bfd.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/327486/d00af250-2045-34a9-b7f9-b3632bfa06e5.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/327484/0c0eb900-6d58-394c-829c-f720e9c2112b.jpg[/img]
小弟大四即将毕业 最近读《java与模式》和《编程思想第四版》的时候发现一个奇怪的问题
《java与模式》里明确指出汽车和轮子等是聚合关系 还特别强调了合成是更加强烈的聚合关系 转到《编程思想第四版》一瞧
发现汽车和轮子变成了合成关系 这到底是怎么回事啊?到底这种关系是属于哪种关系?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • iteye_16421 2010-10-09 17:32
    已采纳

    我上面的说明可能也不很准确,其实 :

    聚合:用来表示“拥有”关系或者整体和部分的关系。

    合成:用来表示一种强得多的“拥有”关系。在一个合成里,部分和整体的生命周期是一样的。一个合成的新对象完全拥有对其组成部分的支配权,包括它们的创建和泯灭等。

    还是我说的,聚合和合成要根据具体的应用场合来说的,也就是我们通常所说的业务逻辑才能确定他们是聚合关系还是合成关系,

    合成关系的部分和整体的生命周期是一样的,聚合则不是,这要看你编程时是怎么实现的。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • iteye_16421 2010-10-09 10:09

    首先,我认为两个类之间是聚合关系还是合成关系,是要根据具体的应用场合来说的,也就是我们通常所说的业务逻辑才能确定他们是聚合关系还是合成关系,

    那么聚合关系和合成关系的区别是什么? 合成关系的两个类是相依相辅的,缺一不可,缺少一个就不能完成某一业务功能, 而聚合关系的两个类则是相互补充的,缺少一个,照样能完成某一业务功能。

    根据以上两点,你会发现,汽车和轮子是合成关系,更是聚合关系

    评论
    解决 无用
    打赏 举报
  • bud407 2010-10-09 11:37

    引用上楼的解释:
    那么聚合关系和合成关系的区别是什么? 合成关系的两个类是相依相辅的,缺一不可,缺少一个就不能完成某一业务功能, 而聚合关系的两个类则是相互补充的,缺少一个,照样能完成某一业务功能。

    汽车和车轮就应该是合成关系,汽车缺了轮子还能跑吗?

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题