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条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog