UML基本介绍

UML基本介绍

统一建模语言(UML,Unified Modeling Language)是面 向对象软件的标准化建模语言。UML因其简单、统一的 特点,而且能表达软件设计中的动态和静态信息,目前已 成为可视化建模语言的工业标准。
UML是一种用于软件系统分析和 设计的语言工具,它用于帮 助软件开发人员进行思考和 记录思路的结果。 UML本身是一套符号的规定,这 些符号用于描述软件模型中 的各个元素和他们之间的关 系,比如类、接口、实现、 泛化、依赖、组合、聚合等。

UML是一种用来建模的语言,跟传统的编程语言不一 样。它用一些符号来描述设计思想,是用于软件系统分 析和设计的语言工具,图形描述帮助我们进行思考和记 录思考的结果,以及软件系统设计和分析理解。
• 常用的UML建模工具有:

  • Visio
  • Rational Rose
  • PowerDesign
  • StarUML是一款UML开发工具
  • 免费在线建模工具processon https://www.processon.com/ 也可以使用一些插件来建模, 如在eclipse中可以安装AmaterasUML 插件**

UML类图

类图怎么画?
代码形式 <–> 类图
 注释
 类
 接口
 类与类之间的关系(relation)

  • 依赖 (Dependency)
  • 继承(Inheritance)
  • 实现(Realization)
  • 关联(Association)
  • 聚合(Aggregation)
  • 组合(Composition)

注释(comment)

注释就是对类图的补充说明,可以附加在任何元素上,用 右上角有折角的矩形来表示,其内放置说明文字,通过 虚线连接被注释的元素。
在这里插入图片描述

类(Class)

在面向对象(OO) 编程中,类是对现实世界中一组具有相 同特征的物体的抽象。 在UML类图中,类使用包含类名、属性(field) 和方法 (method) 且带有分割线的矩形来表示:

在这里插入图片描述
类的属性的完整表示方式:

  • 可见性 名称 :类型 [ = 缺省值] 中括号中的内容表示是可选的
  • 类的方法的完整表示方式: 可见性 名称(参数列表) [ : 返回类型] 中括号中的内容是可选的
    在这里插入图片描述

在UML中,接口有两种表示方式:

  • 普通接口表示法(飞翔);

在这里插入图片描述

  • 棒棒糖表示法(讲人话),使用一个带有名称的小圆圈来表示 ,在旁边写上相应接口名称,没有具体接口方法。
    在这里插入图片描述

类与类之间的关系(relation) 在UML类图中,常见的有以下几种关系:

在这里插入图片描述

- 依赖关系
只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没 有对方,编绎通过不了。虚线箭头

- 类图—关联关系(Association)
关联关系实际上就是类与类之间的联系,是依赖关系的特例。 实线箭头
关联具有导航性:

  • 即双向关系或单向关系

关系具有多重性:

  • “1”(表示有且仅有一个),

  • “0…”(表示0个或者多个),

  • “0,1”(表示0个或者1个),

  • “n…m”(表示n到 m个都可以),

  • “m…*”(表示至少m 个)。

单向一对一关系
//一个人一个身份证号 一对一单向的 一对一

public class Person { private IDCard card;} 
public class IDCard{}

在这里插入图片描述
双向一对一关系

  • //一个人对应一个身份证号 一对一

  • //一个身份证号也对应一个人

 public class Person { private IDCard card;}
 public class IDCard{ private Person person; }

在这里插入图片描述

  • 类图—继承关系(Inheritance)

继承关系也称泛化关系,是依赖关系的特例。 A类继承了B 类也相当于A类用到了B类。
空心三角形+实线

public abstract class DaoSupport{ public void save(Object entity){ } public void delete(Object id){ } } 
public class PersonServiceBean extends DaoSupport{ } 

在这里插入图片描述

  • 类图—实现关系(Implementation)
    实现关系实际上就是A类实现B接口,是依 赖关系的特例,依赖关系更强。空心三角 形+虚线
public interface PersonService {  public void delete(Interger id); } 
public class PersonServiceBean implements PersonService { public void delete(Intergerid){} }

PersonServiceBean实现了PersonService这个接口-实现关系 实现关系实际上就是A类实现B接口。
在这里插入图片描述

- 类图—聚合关系(Aggregation)

聚合关系表示的是整体和部分的关系,整体与部分可以分 开。聚合关系是关联关系的特例,所以他具有关联的导航 性与多重性。使用带空心菱形的实线,菱形指向整体来表 示。
如:一台电脑由键盘(keyboard)、显示器(monitor), 鼠标等组成。考虑计算机与鼠标、显示器能不能分开?
如果认为: 关系是可以分开的,则是聚合关系;
关系是不可以分开的,则是组合关系。
鼠标是可以分离的:可以插上也可以不插上,电脑没有鼠标还是一个电脑;
显示器也是可以分离的;鼠标类、显示器类与电脑类构成聚合关系。

- 聚合关系表示的是整体和部分的关系,整体与部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航 性与多重性。

  • 认为可以分开,是聚合关系
 public class Computer { 
 private Mouse mouse; // 鼠标可以和computer分离 
 private Monitor monitor; //显示器可以和Computer分离
 public void setMouse(Mouse mouse) {this.mouse = mouse;  }
 public void setMonitor (Monitor monitor) { this.monitor = monitor;}
  }

在这里插入图片描述
聚合关系表示整体与部分关系,整体与部分可以分开,聚合 关系是关联关系的特例(如上图A:Mouse,B:Computer,C:Moniter),具有:
导航性:谁聚合谁? A聚合到B:
多重性: B聚合一个A——单聚合 B里面可以聚合多个A——多重聚合

~~

~~

  • 认为不可以分开,是组合关系
public class Computer {
private Mouse mouse = new Mouse();    //鼠标不可以和computer分离——组合关系
private Moniter monitor = new Monitor();    //显示器不可以和Computer分离——组合关系
public void setMouse(Mouse mouse) {this    .mouse=mouse;}
public void setMonitor(Monitor monitor) { this    .monitor = monitor;} 
}

在这里插入图片描述

  • 类图—组合关系(Composition)

组合关系:也是整体与部分的关系,但是整体与部分不可以分 开。实心菱形+实线
案例:定义类:Person、IDCard与Head, 那么
Head 和Person 是 组合——人不能没有头。
IDCard 和 Person 是聚合——一个人可以没有身份证,去补办 身份证就行。
如果在程序中Person类中定义了对IDCard进行级联删除,即删 除Person时连同IDCard一起删除,那么IDCard 和 Person 就是 组合了。

  • 组合关系:也是整体与部分的关系,但是整体与部分不可以分开。
 public class Person{ 
 private IDCard card; //聚合 
 private Head head = new Head(); //组合
  } 
  public class IDCard{} 
  public class Head{}

在这里插入图片描述

类与类之间的关系(relation)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值