打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
UML 完全解析和总结

预计阅读时间:8 分钟

1、UML的定义

(1)UML (Unified Modeling Language)

         统一建模语言,以可视化的观点来看程序系统,将规格和设计重点直接写下来

(2)UML的 “attribute(属性)” 代表Java的 “field(字段)” 

         UML的 “operation(操作)” 代表Java的 “method(方法)”

2、类图(class Diagram)

(1)类图是一种可表示一组类、对象实例和接口之间静态关系的图,类图并不仅仅只是类

(2)类的UML图示

public class Employee { private String name; private int age; private String email; public void modifyInfo() { ...... }}

UML类图一般由三个部分组成:

  • 类名:每个类都有一个类名,如果是抽象类,还需要将类名称以斜体表示

  • 属性(Attribute):指类的成员变量,UML规定属性的表示方式: 可见性 名称:类型[=缺省值]

        1)“ 可见性 ” 表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private) 和 受保护(protected)三种,在类图中分别用符号 、 - 和 # 表示;

        2)“名称”表示属性名,用一个字符串表示;

        3)“类型”表示属性的数据类型,可以是基本数据类型,也可以是用户自定义类型;

        4)“缺省值”是一个可选项,即属性的初始值。

  • 操作(Operations):指类的成员方法,UML规定的表示方式: 可见性 名称(参数列表)[:返回类型]

        1)“可见性”的定义与属性的可见性定义相同;

        2)“名称”即方法名,用一个字符串表示;

        3)“参数列表”表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开;

        4)“返回类型”是一个可选项,表示方法的返回值类型,依赖于具体的编程语言,可以是基本数据类型,也可以是用户自定义类型,还可以是空类型(void),如果是构造方法,则无返回类型。

3、接口<Interface>

(1)接口通常没有属性,而且所有操作都是抽象的,只有操作的声明,没有操作的实现

(2)UML用与类的表示法类似的方式表示接口

4、类图关系

类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系、聚合关系(Aggregation)和组合关系(Composition)。下面结合例子理解这些关系。

类的继承结构表现在UML中为:泛化(Generalization)与实现(Realization)

  • 【泛化关系】

    1)是一种继承关系,指定子类如何特化父类的所有特征和行为

    2)用一条带空心三角箭头的实线表示,箭头指向父类

  • 【实现关系】

    1)是一种类与接口的关系,表示类是借口所有特征和行为的实现

    2)用一条带空心三角箭头的虚线表示,箭头指向接口。  

  • 【聚合关系】

    1)是整体与部分的关系,与组合关系不同的是,整体和部分不是强依赖的,即使整体不存在了,部分仍然存在;

    2)代码体现:成员变量

    3)用一条带空心菱形的实线表示,菱形指向整体。

  • 【组合关系】

    1)是整体与部分的关系,是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了;

    2)代码体现:成员变量

    3)用一条带实心菱形的实线表示,菱形指向整体。

  • 【关联关系】

    1)是一种拥有关系,使得一个类知道另一个类的属性和方法,关联关系是一种“强关联”的关系;比如,乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系

    2)代码体现:成员变量

    3)用一条带普通箭头的实线或者就直接用直线(默认不强调方向)表示,普通箭头指向被拥有者;关联可以是单向也可以是双向,双向关联可以有两个箭头或者没有箭头,单向关联只有一个箭头

  • 【依赖关系】

    1)是一种使用关系,描述一个对象在运行期间会用到另一个对象的关系,依赖关系除了临时知道对方外,还会“使用”对方的方法和属性;与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化, 依赖关系也可能发生变化,尽量不要使用双向的相互依赖

    2)代码表现:局部变量、为类构造方法及类方法的传入参数或者对静态方法的调用

    3)用一条带普通箭头的虚线表示,箭头指向被使用者

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
UML类图画法及其之间的几种关系
解析UML类图符号
类图和对象图教程
转载:UML中的类图及类图之间的关系
流程图、UML图、ER图
UML类图总结(浅显易懂实用)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服