uml及建模工具(常用uml建模工具)

本文简单介绍了UML建模工具,主要介绍了类之间的几种关系。类图上面是一个类图,从上到下依次表示了类名、类的成员变量、类的成员函数。成员变量前面使用+/-/#分别表示可见性是public,private,protected接口没有成员变量,所以只有两个格子。关系依赖关系依赖关系指的是一个类的修改会对另一个类产生影响。最简单的例子是一个类使用了另一个类提供的服务。依赖关系A依赖B表现…

大家好,又见面了,我是你们的朋友全栈君。

本文简单介绍了UML建模工具,主要介绍了类之间的几种关系。

类图

类图示例
上面是一个类图,从上到下依次表示了类名、类的成员变量、类的成员函数。成员变量前面使用+/-/#分别表示可见性是public,private,protected
在这里插入图片描述
接口没有成员变量,所以只有两个格子。

关系

依赖关系

依赖关系指的是一个类的修改会对另一个类产生影响。最简单的例子是一个类使用了另一个类提供的服务。
依赖关系A依赖B表现为:

  1. B是A的成员变量
  2. B是A方法的参数
  3. B是A的基类
    从以上可以看出,依赖关系指的是两个类有直接的关系,如果将依赖的类成为client,被依赖的类称为service provider,那么client必须知道service provider的存在,而service provider不需要知道client的存在。其它所有的关系其实都是依赖关系的特殊情况。
实例

继承关系使用箭头加虚线表示。spring 解析xml的过程就是这样的一个依赖关系,为了简单,这里省区了XmlBeanFactory的一个参数。
在这里插入图片描述

代码
public class XmlBeanFactory extends DefaultListableBeanFactory { 
   

	private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);


	/** * Create a new XmlBeanFactory with the given resource, * which must be parsable using DOM. * @param resource XML resource to load bean definitions from * @throws BeansException in case of loading or parsing errors */
	public XmlBeanFactory(Resource resource) throws BeansException { 
   
		this(resource, null);
	}

	/** * Create a new XmlBeanFactory with the given input stream, * which must be parsable using DOM. * @param resource XML resource to load bean definitions from * @param parentBeanFactory parent bean factory * @throws BeansException in case of loading or parsing errors */
	public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { 
   
		super(parentBeanFactory);
		this.reader.loadBeanDefinitions(resource);
	}

}

继承关系

java的extends和c#的冒号可以实现继承,继承使用实线和三角箭头表示。

实例

上例中的XmlBeanFactory继承了DefaultListableBeanFactory,所以UML类图可以这样表示:
泛化关系

关联关系

关联关系是类似关系型数据库的那种对应关系,例如班级和学生的对应关系,每个班级可以对应多个学生,每个学生有一个班级,关联关系使用实线和箭头表示。

示例

和ER图中的关联关系一样,关联关系依对应的数量不同分为很多种:

  1. 双向关联
    uml及建模工具(常用uml建模工具)
  2. 单向关联
    在这里插入图片描述
  3. 自关联
    在这里插入图片描述
  4. 重数关联
    重数关联是更一般的关联的描述方法,指明了关联的对象的个数,有如下几种
个数 含义
1…1 一个对象只与另一个对象有关系
0…1 一个对象与另外一个或0个对象有关系
1…* 一个对象与一个或另外多个对象有关系
0…* 一个对象与另外0个或多个对象有关系
m…n 一个对象与另外最少m个最多多个对象有关系

聚合关系

聚合关系是一种特殊的关联关系,聚合分为整体和部分两个组件。聚合使用空心菱形和实线加箭头表示

示例

在这里插入图片描述
可以看出,engine对car的存在可以没有感知,也就是一个引擎可以装在这个车里,也可以装在另一台车里,部分可以独立于整体之外存在。使用聚合可以将若干个功能重叠的类中可以复用的部分抽离出来,使用聚合来复用抽离出来的功能。

组合关系

组合关系表示的也是部分和整体之间的关系,只是组合的部分也要依赖于整体存在,组合关系使用实心菱形和实线加箭头表示。

示例

在这里插入图片描述
这里的嘴和头是相互依赖存在的。

实现关系

实现关系表示类实现接口,实现使用虚线和三角箭头表示:
在这里插入图片描述

辨析

  1. 总的来说,所有的关系都包含了依赖关系,只是有的更加细化。
  2. 关联包含了组合和聚合,聚合和组合的区别是聚合的部分可以独立于整体存在,组合的部分不能独立于整体存在。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125963.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python可变参数调用函数的问题

    python可变参数调用函数的问题

    2021年12月30日
  • Eclipse汉化教程2021年最新

    Eclipse汉化教程2021年最新Eclipse汉化教程1.复制汉化连接https://download.eclipse.org/technology/babel/update-site/latest/,网址为:https://www.eclipse.org/babel/downloads.php2.打开Eclipse,Help—>installnewsoftware…—>Add…—>Name随便起一个;Location将刚刚复制的链接粘贴上来,等待下载3.选择BabelLanguagePacksf

    2022年6月5日
  • Ubuntu 安装使用yum[通俗易懂]

    Ubuntu 安装使用yum[通俗易懂]第一步:安装 build-essential 软件包  先简要说明一下这个包的作用,    Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。如果单独安装gcc以及g++比较麻烦,幸运的是,为了能够编译Ubuntu的内核,Ubuntu提供了一个build-essential软件包。查看该软件包的依赖关系,可以看到以下内容:$apt-…

    2022年6月28日
  • 设置matlab保存的图片没有白边,matlab如何保存figure中去掉白边的图片「建议收藏」

    设置matlab保存的图片没有白边,matlab如何保存figure中去掉白边的图片「建议收藏」输出图片成可直接调入的灰度图,设置输出图片空白边距,以及调整图片大小,纵横比。一、先显示图片,imshow。如果是plot,或者newplot,直接看“三”。imshow(strain_image,’border’,’tight’,’initialmagnification’,’fit’);%’border’,’tight’的组合功能意思是去掉图像周边空白%’InitialMagnificatio…

    2022年9月3日
  • qt中整型转化成字符串_字符串转double

    qt中整型转化成字符串_字符串转double程序中需要将整型转换为字符串QString类型,看了看QString的构造函数,没有直接以int类型为参数的。很奇怪,Qt一直给人感觉做什么都很方便,怎么会没有直接将整型转换为字符串的方法呢?难道还得自己写?过一段时间后终于顿悟了,其实用QString的arg()函数可以完美解决其他类型转换为字符串的问题。只需要:intintValue;QStringstrValue;

    2022年10月19日
  • yui compressor php,通过yuicompressor-2.4.7压缩css或js的php应用文件

    yui compressor php,通过yuicompressor-2.4.7压缩css或js的php应用文件yuicompressor这是个很好的工具,通过java库编译css或js文件进行压缩。压缩css或者js文件的好处是很多的,减少数据请求量,可以更快的进行数据传输,防止其他人进行窥探或整体直接挪用等等。。。首先你要去下载一个yuicompressor现在最新版本是2.4.7下载地址:yuicompressor使用方法怎么工作在这里都有详细的说明,就不一一介绍了。最常用的yuicompre…

    2022年7月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号