0.个人感悟

  • 凡是名字中带有统一(Unfied)的东西都很牛B,包括某方便面。。
  • 工作中常用到UML中的类图和时序图,主要用于需求的详细分析和设计。学好这些,不仅有利于工作表达,也是和国际接轨
  • 对于类与类关系表达。个人觉得不用刻意记忆各种箭头,语言到底还是为设计服务的,可以知道这个知识点,用到的时候查阅。建议能熟练使用一个UML工具。
  • 类与类之间的关系的理解。其实都是不同程度的依赖关系。然后根据特性分成3大族类,
    • 泛化。 面向对象基本概念
    • 实现。 面向对象基本概念
    • 依赖族。 根据关系由浅到深分为依赖、关联、聚合、组合。

1.概念

Unified modeing language(统一建模语言)是一种用于软件系统分析和设计的语言工具。
本身是一套符号的约定,描述软件模型中各个元素及它们之间的关系。

2.分类

开发工作中最长用的还是类图、时序图。这里把各种图列一下,后面用到再详细补充学习。

  1. 结构图
  • 类图
  • 对象图
  • 组件图
  • 部署图
  • 包图
  • 符合结构图
  1. 行为图
  • 用例图
  • 活动图
  • 状态机图
  • 时序图
  • 通信图
  • 交互概览图
  • 定时图

3.UML类图

3.1 概念

UML类图是UML中专注于描述系统的静态结构,展示类、接口、协作及它们之间的关系的图形语言。

3.2 类的表示方法

3.2.1 类

使用包含类名、属性(filed)和方法(method)且带有分割线的矩形来表示。
举例: 类 -> 代码 -> 类图
类: Employee类,包含name,age和email 这3个属性,以及retName、getInfo方法
代码:

package uml;  
  
public class Employee {  
    private String name;  
  
    private int age;  
  
    private String address;  
  
    public void reName(String newName) {  
        this.name = newName;  
    }  
  
    public String getInfo() {  
        return this.name + this.age + this.address;  
    }  
}

类图:
类图示例

3.2.2 属性

可见性 名称 : 类型[ = 缺省值]

说明: 可以给属性设置默认值,比如这里的age属性
可见性符号:

  • + : 表示public
  • - : 表示private
  • # : 表示protected

3.2.3 方法

可见性 方法名称(参数列表)[: 返回类型]

说明:无返回参数的返回类型为void,比如reName方法

3.3 类与类之间的关系

3.3.1依赖 dependency

  • 一种使用关系,弱关系
  • 大多数表现为参数使用
  • 虚线箭头表示
    e.g: programmer依赖computer进行coding
    依赖关系

3.3.2 关联 association

  • 一种引用关系,类之间的联系,有导航性
  • 表现为一个类是另一个类的属性。单向关联用实线箭头
  • 双向用实线

e.g: teacher和student是双向关联,而student和course是单向关联
关联关系

3.3.3 聚合 Aggregation

  • 关联的强化,整体和部分的关系, 成员是整体的一部分,成员也可以单独存在
  • 使用空心菱形 剪头指向整体。

e.g: school和teacher
聚合关系

3.3.4 组合 Coposition

  • 聚合的强化,整体和部分,不可分割的一体
  • 使用实心菱形指向整体

e.g:body和head
组合关系

3.3.5 实现 Realization

  • 实现关系,接口与实现类
  • 空心三角虚线表示

e.g: university和实现类
实现关系

3.5.6 泛化 Generalization

  • 继承关系
  • 空心三角实线表示

e.g:fruit和继承类
泛化关系

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐