baileng8 2013-12-06 18:30 采纳率: 0%
浏览 513
已采纳

UML中的依赖关系

我是小白,刚学设计模式,被一些概念性问题困住了

UML中的依赖关系说是如果有其中一个类变化,有可能会引起另一个类的变化

这个变化我就不明白了,是类的设计(比如增加属性,修改方法)变化呢,还是类的对象变化啊?

  • 写回答

3条回答 默认 最新

  • iteye_9831 2013-12-07 11:20
    关注

    很久没看资料了。

    印象中,UML的类的关系有3种:

    1、继承、实现关系; 这个不用多说了
    (UML图中的空心、或实心三角形)
    (Java代码中的extends、implements)

    2、组合、聚合关系;
    某个对象是另一个对象的一部分。
    如果容器对象 对子对象的生命周期负责,那么是 强的聚合关系,这个好像就是“组合”。(UML图中的实心菱形)(Java代码中,表现为类的字段)
    如果子对象具有独立的生命周期,并不随着容器的创建而创建、随容器的销毁而销毁,那么容器和子对象之间的关系,这个就是“聚合”(UML图中的空心菱形)
    (Java代码中,表现为类的字段)

    除此以外,还有一种更弱的聚合关系,(在UML图中是 直线---关系是双向的、或者是带箭头的直线---关系是单向的。)
    (Java代码中,也表现为类的字段)

    组合/聚合(以及上面更弱的聚合)更多是一种语义上的描述,在代码中无法体现出差别。

    3、依赖关系;
    对象A使用对象B的功能来完成自身的职责。
    (UML图中的虚线箭头)
    (Java代码中的方法参数、或者方法局部变量--对象引用)


    依赖、和组合/聚合 的区别:
    依赖更多描述行为;
    组合/聚合描述结构;但结构上的关系必然也会产生行为上的依赖。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条