一、5种UML图类型
结构图:类图和实现方式图
1.类图(class diagram),描述系统中的对象类以及这些类之间的联系。
行为图:用于显示组件、类、用户和系统之间的流程
2.用例图(use case diagram),描述一个系统与其环境之间的交互。§ 用例图是设计系统时,分析阶段的起点。
3.活动图(activity diagram),描述一个过程或数据处理中所包含的活动。§ 它是对于业务工作流程进行建模。
4.状态图(state diagram),描述系统如何对内部和外部的事件做出响应。§ 状态图实在分析阶段和设计阶段之间过度,是可视化应用程序流程的好方法。
5.顺序图(sequence diagram),描述参与者与系统之间以及系统构件之间的交互。
二、6种关系(泛化、实现、依赖、关联、聚合、组合)
本文将易混淆的关系放在同一组进行区分,主要关注区分概念
和连接方式
(1) 泛化(继承):(大雁 ◁————
白大雁)
实现(应用):(接口 ◁- - -
类)
(2) 聚合:一个是整体,一个是个体/部分(燕群 ◇————>
大雁)
组合:整体与部分不可分(大雁 ◆————
翅膀)
(3) 关联(连接):
双向关联:两个类都知道另一个类的公共属性和操作。(比如我 和 我的朋友)
单向关联:只有一个类知道另一个类的公共属性和操作。(比如你 和 你关注的博主)
(4) 依赖 (手机 - - ->
充电器)
三、UML图举例
本文提供几个经典例子便于理解回顾,具体画图细节不再赘述(具体细节参考b站)
用例图
类图
活动图
添加泳道
顺序图
(主要区分同步和异步,异步箭头,同步三角)
状态图
类间关系
1.泛化(继承):子类继承父类的属性和方法
//代码1
public class A1{ }
public class B1 extends A1{ }
类B1继承类A1
2.实现:类对接口(或多个)的功能实现
//代码2
public class Bird implements Animal { }
3.关联:一个类知道另一个类的属性和方法(单向或双向)
//代码3
public class A2 { }
public class B2{
private A2 a2;
}
类A2作为类B2的成员变量(单向关联)
4.依赖:一个类的实力在方法内使用到另一个类的实例
1、A是B中方法的局部变量;
2、A是B中方法的返回值;
3、A是B中方法的参数;
//代码4
public class A3 { }
public class B3{
public Fun(A3 a3) { }
}
A3作为B3的Fun方法中的参数
5.组合:部分不可以脱离整体独立存在
组合关系的类里含有另一个类的实例化
//代码5
public class A4 { }
public class B4{
private A4 a4;
public B4(){
a4 = new A4();
}
}
B4中包含A4类型的成员变量a4,并构造函数初始化a4
6.聚合:部分可以脱离整体独立存在
聚合关系的类里含有另一个类作为参数
//代码6
public class A5 { }
public class B5{
public A5 a5;
public B5(A5 a){
a5=a;
}
}
B5中包含A5类型的成员变量a5,通过调用B5( )方法对a5进行赋初值