UML_类图

什么是UML

UML即统一建模语言(Unified Modeling Language),它是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。

什么是类图

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。

以上定义摘自百度百科。

以上涉及到两个重点:

  • 类的内部结构
  • 他们与其他类的关系

类图描述类的内部结构

Class Diagram要描述类的内部结构,首先就得知道面向对象的编程语言中类有什么,才能知道类图需要表示什么。

虽然说是类图,与类互为相同级别的抽象类,和接口分别是如何用类图表示的?

类图(包括类,抽象类,接口)中表示类是以一个矩形框横向分为三层来表示的。在第一层中表示类(抽象类,接口)的名字。在第二层中表示成员变量,在第三层中定义该类的方法。

而在这三种中,类以普通字体来标识; 而抽象类是以斜体来标识; 接口是在类的基础上,在类的名字上加上< >来标识。

类里面的成员变量以及方法又是如何用类图表示的?

在类图中第二个方框是成员变量。

权限修饰符

面向对象中的权限修饰符有四个,由开放到严格分为: private, protected, default, public

在类图中,是这么表示的:

权限修饰符 类图中的表示
public +
default
protected #
private -

如,在People类里面,有一个成员变量为 name, 数据类型为 String, 权限为 public , 则对应的表示方式为:

+ name : String

相应的我们在编程中,一般会生成对应的getter/setter方法,在UML类图中是这么表示的:

# getName方法
public String getName() {
    return this.name;
}

则在这里对应的UML类图是这么画的:

+ getName() : String

对应的setter方法为:

public void setName(String name) {
    this.name = name;
}

对应的类图为:

+ setName (name String) : void

UML类图元素之间的关系

在面向对象中类和类之间的关系有:

  • 继承
  • 实现
  • 组合
  • 聚合
  • 关联
  • 依赖

继承

继承也叫作泛化(Generalization),用于描述父子类之间的关系。在UML中,泛化关系用带空心三角形的实线来表示。

实现

指的是一个class类实现interface接口(可以是多个)的功能;在UML中,实现关系用带宽心三角形的虚线来表示。

聚合()

聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;在UML中用空间菱形表示。

组合(Composition)

组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的。在UML中用实心的菱形表示。例如汽车和引擎,汽车和门的关系。

依赖

可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;

关联

他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系。

猜你喜欢

转载自www.cnblogs.com/ylhong/p/11628301.html