UML类图-从入门到放弃
欢迎来到UML类图的世界
较为官方式的解释,UML 这三个字母的全称是 Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。
UML 的模型主要有三部分构成:
事物(Things):UML 模型中最基本的构成元素,是具有代表性的成分的抽象。
关系(Relationships):关系把事物紧密联系在一起。
图(Diagrams):图是事物和关系的可视化表示。
但根据我个人的理解,我感觉 UML类图 是一种类似语言的工具,它可以用于交流,就像中国的普通话一样,还有汉字,又比如一种标识,比如交通规则等等。
为何学习UML类图
1.在一些书籍上,会出现类似下面图中的UML类图,学会看类图,读懂它,掌握与别人的沟通桥梁。
2.自己如何将自己的整体的架构与设计模式告诉别人,我感觉也是学习UML很重要的一个点。(哪怕一个类里面有很多变量,方法,引用等等,但 一张UML类图就可以描述,简洁方便。)
3.也是一个程序员必备的技能树。
UML类图有哪些工具
UML工具 Astah community,visio,ProcessOn,StartUML,WPS也可以噢.
UML类图
在UML类图中,常见的有以下几种关系: 泛化(继承 Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
1.继承(泛化)
【实现关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类
2.实现.
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口
3.关联
一个类对象与另一个类对象有联系,在C++/Java等实现中,通常将一个类的对象作为另一个类的属性。
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。 双向的关联可以有两个箭头或者没有箭头,单向的关联 或 自关联 有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
关联关系又可进一步分为单向关联、双向关联和自关联。
1)单向关联
我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。
(2)双向关联
从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了那些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
(3)自关联
自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。
- 聚合
上图中的Car类与Engine类就是聚合关系(Car类中包含一个Engine类型的成员变量)。由上图我们可以看到,UML中聚合关系用带空心菱形和箭头的直线表示。聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能单独存在。
- 组合
组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。比如下图:
显然,嘴是头的一部分且不能脱离了头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。
比如 RecyclerView 带的 Recycler.
与聚合关系最大的不同是 : 部分离开整理是不能单独存在的。 比如下面的这个例子,分明显部门 是属于特定的公司的,如果部门脱离所在的公司,不能单独存在的,所以部门和员工之间的关系是组合关系。
- 依赖
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
从上图我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。
内部类表示方式:
参考资料
五分钟读懂UML类图
UML 统一建模语言
时序图
UML条件判断
UML之包图(Package Diagram)
UML类图之间的关系:依赖、关联、聚合、组合等
UML时序图资料:
/ucd/607593.html
UML类图-从入门到放弃
欢迎来到UML类图的世界
较为官方式的解释,UML 这三个字母的全称是 Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言。
UML 的模型主要有三部分构成:
事物(Things):UML 模型中最基本的构成元素,是具有代表性的成分的抽象。
关系(Relationships):关系把事物紧密联系在一起。
图(Diagrams):图是事物和关系的可视化表示。
但根据我个人的理解,我感觉 UML类图 是一种类似语言的工具,它可以用于交流,就像中国的普通话一样,还有汉字,又比如一种标识,比如交通规则等等。
为何学习UML类图
1.在一些书籍上,会出现类似下面图中的UML类图,学会看类图,读懂它,掌握与别人的沟通桥梁。
2.自己如何将自己的整体的架构与设计模式告诉别人,我感觉也是学习UML很重要的一个点。(哪怕一个类里面有很多变量,方法,引用等等,但 一张UML类图就可以描述,简洁方便。)
3.也是一个程序员必备的技能树。
UML类图有哪些工具
UML工具 Astah community,visio,ProcessOn,StartUML,WPS也可以噢.
UML类图
在UML类图中,常见的有以下几种关系: 泛化(继承 Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
1.继承(泛化)
【实现关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类
2.实现.
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口
3.关联
一个类对象与另一个类对象有联系,在C++/Java等实现中,通常将一个类的对象作为另一个类的属性。
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。 双向的关联可以有两个箭头或者没有箭头,单向的关联 或 自关联 有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
关联关系又可进一步分为单向关联、双向关联和自关联。
1)单向关联
我们可以看到,在UML类图中单向关联用一个带箭头的直线表示。上图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。
(2)双向关联
从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。在UML类图中,双向关联用一个不带箭头的直线表示。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了那些产品;在Product类中维护一个Customer类型的成员变量表示这个产品被哪个顾客所购买。
(3)自关联
自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。
- 聚合
上图中的Car类与Engine类就是聚合关系(Car类中包含一个Engine类型的成员变量)。由上图我们可以看到,UML中聚合关系用带空心菱形和箭头的直线表示。聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能单独存在。
- 组合
组合关系与聚合关系见得最大不同在于:这里的“部分”脱离了“整体”便不复存在。比如下图:
显然,嘴是头的一部分且不能脱离了头而单独存在。在UML类图中,组合关系用一个带实心菱形和箭头的直线表示。
比如 RecyclerView 带的 Recycler.
与聚合关系最大的不同是 : 部分离开整理是不能单独存在的。 比如下面的这个例子,分明显部门 是属于特定的公司的,如果部门脱离所在的公司,不能单独存在的,所以部门和员工之间的关系是组合关系。
- 依赖
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
从上图我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。在UML类图中,依赖关系用一条带有箭头的虚线表示。
内部类表示方式:
参考资料
五分钟读懂UML类图
UML 统一建模语言
时序图
UML条件判断
UML之包图(Package Diagram)
UML类图之间的关系:依赖、关联、聚合、组合等
UML时序图资料:
/ucd/607593.html