我是小白,刚学设计模式,被一些概念性问题困住了
UML中的依赖关系说是如果有其中一个类变化,有可能会引起另一个类的变化
这个变化我就不明白了,是类的设计(比如增加属性,修改方法)变化呢,还是类的对象变化啊?
我是小白,刚学设计模式,被一些概念性问题困住了
UML中的依赖关系说是如果有其中一个类变化,有可能会引起另一个类的变化
这个变化我就不明白了,是类的设计(比如增加属性,修改方法)变化呢,还是类的对象变化啊?
很久没看资料了。
印象中,UML的类的关系有3种:
1、继承、实现关系; 这个不用多说了
(UML图中的空心、或实心三角形)
(Java代码中的extends、implements)
2、组合、聚合关系;
某个对象是另一个对象的一部分。
如果容器对象 对子对象的生命周期负责,那么是 强的聚合关系,这个好像就是“组合”。(UML图中的实心菱形)(Java代码中,表现为类的字段)
如果子对象具有独立的生命周期,并不随着容器的创建而创建、随容器的销毁而销毁,那么容器和子对象之间的关系,这个就是“聚合”(UML图中的空心菱形)
(Java代码中,表现为类的字段)
除此以外,还有一种更弱的聚合关系,(在UML图中是 直线---关系是双向的、或者是带箭头的直线---关系是单向的。)
(Java代码中,也表现为类的字段)
组合/聚合(以及上面更弱的聚合)更多是一种语义上的描述,在代码中无法体现出差别。
3、依赖关系;
对象A使用对象B的功能来完成自身的职责。
(UML图中的虚线箭头)
(Java代码中的方法参数、或者方法局部变量--对象引用)
依赖、和组合/聚合 的区别:
依赖更多描述行为;
组合/聚合描述结构;但结构上的关系必然也会产生行为上的依赖。