Oop 聚合、组合和依赖之间的区别是什么?

Oop 聚合、组合和依赖之间的区别是什么?,oop,uml,Oop,Uml,聚合、合成和依赖之间有什么区别?聚合和合成几乎完全相同,只是当孩子的生活完全由父母控制时,使用了合成 聚合 Car -> Tires Body -> Blood Cell 轮胎可以从汽车物体上取下,安装在另一个物体上。此外,如果汽车被损坏,轮胎也不一定要被损坏 作文 Car -> Tires Body -> Blood Cell 当身体物体被摧毁时,血细胞也随之被摧毁 依赖关系 两个对象之间的关系,其中更改一个对象可能会影响另一个对象 聚合意味着子级可以独立于父级

聚合、合成和依赖之间有什么区别?

聚合和合成几乎完全相同,只是当孩子的生活完全由父母控制时,使用了合成


聚合

Car -> Tires
Body -> Blood Cell
轮胎
可以从
汽车
物体上取下,安装在另一个物体上。此外,如果汽车被损坏,轮胎也不一定要被损坏

作文

Car -> Tires
Body -> Blood Cell
身体
物体被摧毁时,
血细胞
也随之被摧毁

依赖关系


两个对象之间的关系,其中更改一个对象可能会影响另一个对象

聚合意味着子级可以独立于父级而存在的关系。示例:班级(家长)和学生(孩子)。删除该类,学生仍然存在

组合意味着子对象不能独立于父对象而存在的关系。示例:房子(家长)和房间(孩子)。房间不是与房子分开存在的

上述两种形式都是包容(因此是父子关系)

依赖关系是一种较弱的关系形式,在代码中表示一个类使用另一个by参数或返回类型


依赖关系是一种关联形式

组合关系关联的对象将不存在于包含对象之外。例如约会和所有者(一个人)或日历;一个测试结果和一个病人

另一方面,由包含对象聚合的对象可以存在于包含对象之外。例如门和房子;一名员工和一个部门


依赖关系与协作或委托相关,其中一个对象从另一个对象请求服务,因此依赖于该对象。作为服务的客户机,您希望服务接口保持不变,即使将来提供了服务

聚合和组合是OO世界中大多数人通过UML获得的术语。UML在定义这些术语方面做得很差,例如Henderson Sellers和Barbier(“什么叫聚合?”,“统一建模语言中的整体-部分关系的形式化”)就证明了这一点。我认为,如果您对符合UML感兴趣,就不能给出聚合和组合的一致定义。我建议你看看被引用的作品


关于依赖关系,这是类型(而不是对象)之间的高度抽象关系,几乎可以表示任何东西。

包容:-这里要访问内部对象,我们必须使用外部对象。我们可以重用包含的对象。
聚合:-在这里,我们可以在不使用外部对象的情况下反复访问内部对象。

一个对象可能包含另一个对象作为其属性的一部分

  • 文档包含包含单词的句子
  • 计算机系统有硬盘、ram、处理器等

  • 因此,安全壳不需要是物理的。e、 例如,计算机系统有保修。

    聚合-可分离的部分到整体。该部分有自己的身份,与它所属的部分相分离。您可以拾取该零件并将其移动到另一个对象。(真实世界示例:车轮->汽车,血细胞->身体)

    成分整体的不可分离部分。不能将零件移动到其他对象。更像是一种财产。(现实世界示例:曲线->道路,个性->人,最大速度->汽车,对象属性->对象)

    请注意,在一种设计中是聚合的关系可以是另一种设计中的组合。这一切都是关于如何在特定的设计中使用关系

    依赖性-对变化敏感。(降雨量->天气,头部位置->身体位置)


    注:“血细胞”->血液”可以是“成分”,因为血细胞离不开被称为血液的实体。“血液”->身体”可以是“聚集”正如血液可以在没有身体的情况下存在一样。

    提到聚集和组成是包容关系形式的特化,这将是完美的。:-)不说你是对的还是错的,但这些分类很糟糕。类/学生==聚合吗?。。。根据JavaPapers.com的说法不是这样。“一个班级包含学生。没有班级,学生就无法生存。班级和学生之间存在组合。”@tallPaul你提到的论文与我对聚合和组合的定义一致。它只是对学生使用了不同的定义。它说,没有课堂,学生就无法生存。如果是这样的话,那么是的,那就是构图。如果不是,那就是聚合。我不喜欢他们的前提:学生可以存在,而不是在任何课堂上。这不是绝对的——这真的取决于业务;如果你正在设计一些CAD软件,并且你倾向于把物体(厨房、浴室)放在屏幕上,那么房间可以没有房子存在。。。身体部位不一定是身体移植业务的组成部分。这就是为什么你必须定义你真正想要的东西。这完全取决于你抽象的局限性。不管你是在课堂上还是课外看到一个实体。有趣的是,我刚刚读了一篇教程,其中汽车轮胎的例子是用来说明组成…有趣的是,我想这取决于你如何看待它。我不明白销毁汽车物体如何也要求销毁轮胎。另外,你可以把轮胎从汽车上取下来,放到另一辆车上。我想这就是类比的问题。
    有趣,我想这取决于你如何看待它。
    我喜欢答案,b