UML关系
1、关联关系(association)
用一条直线表示,它描述不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。
单向关联关系则用一条带箭头的直线来表示的。
事例代码:
public class ClassA { //关联是对象间长期的一种关系,被调用类表现为调用类的引用,或者调用类的属性, //常见的关联关系有一对一,一对多,多对多关系。 private ClassB classB; public void methodA(){ classB.methodB(); } }
2、依赖关系(dependency)
用一条带箭头的虚线表示,它描述一个对象的修改会导致另一个对象的修改这样的关系。
依赖关系除了“知道”其它对象的存在,还会“使用”其它对象的属性或方法。
双向依赖是一种非常不好的结构,我们总是应当保持单向依赖,杜绝双向依赖关系的产生。
事例代码:
public class ClassA { // 依赖是对象间短暂的一种关系,被调用类表现为调用类的局部变量,方法的参数, // 以及调用类调用被调用类的静态方法 public void methodA(ClassB classB){ classB.methodB(); } }
3、实现关系(realization)
用一条带空心箭头的虚线表示,业务目标可能有多种可能的实现途径,每一种实现途径
可以用用例实现来表示,而用例实现与基本用例之间就构成了实现关系。
4、泛化关系(generalization)
用一条带空心箭头的直线表示的,泛化关系表示一个类对另一个类的继承。
5、聚合关系(aggregation)
用一条带空心菱形箭头的直线表示的,(A聚合到B上,或者说B由A组成)。
聚合关系是关联关系的一种特例,体现的是整体与部分、拥有的关系,即has-a的关系,
整体与部分是可分离的,具有各自的生命周期。
与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分依然存在。
6、组合关系(composition)
用一条带实心菱形箭头的直线表示的,(A组合成B,或者说B由A构成)。
组合关系也是关联关系的一种特例,体现的是contanins-a的关系,关系比聚合更强,
整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束。
组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也将消亡。
7、扩展关系(extends)
用一条带箭头的虚线加版型<<extends>>来表示的。
与包含关系不同的是,扩展表示的是“可选”,而不是“必需”。
8、包含关系(include)
用一条带箭头的虚线加版型<<include>>来表示的,
与扩展用例不同的是,包含用例表示的是“必需”而不是“可选”,
这意味着如果没有包含用例,基本用例是不完整的。
上一篇: JavaScript testing frameworks
下一篇: UML用法概括
推荐阅读
-
Spring和SpringMVC父子容器关系初窥(小结)
-
(解释文)My SQL中主键为0和主键自排约束的关系
-
Spring循环依赖正确性及Bean注入的顺序关系详解
-
详解Android Scroller与computeScroll的调用机制关系
-
Hibernate实现many-to-many的映射关系
-
双一流高职院校是什么意思?双一流高职院校与专业群之间的关系?(2021年参考)
-
详解java中继承关系类加载顺序问题
-
Android编程操作嵌入式关系型SQLite数据库实例详解
-
深入Spring Boot之ClassLoader的继承关系和影响
-
Spring和SpringMVC父子容器关系初窥(小结)