前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uml及建模工具(常用uml建模工具)

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

作者头像
全栈程序员站长
发布2022-08-01 14:59:52
1.3K0
发布2022-08-01 14:59:52
举报
文章被收录于专栏:全栈程序员必看

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

本文简单介绍了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的一个参数。

代码
代码语言:javascript
复制
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. 双向关联
  1. 单向关联
  1. 自关联
  1. 重数关联 重数关联是更一般的关联的描述方法,指明了关联的对象的个数,有如下几种

个数

含义

1…1

一个对象只与另一个对象有关系

0…1

一个对象与另外一个或0个对象有关系

1…*

一个对象与一个或另外多个对象有关系

0…*

一个对象与另外0个或多个对象有关系

m…n

一个对象与另外最少m个最多多个对象有关系

聚合关系

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

示例

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

组合关系

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

示例

这里的嘴和头是相互依赖存在的。

实现关系

实现关系表示类实现接口,实现使用虚线和三角箭头表示:

辨析

  1. 总的来说,所有的关系都包含了依赖关系,只是有的更加细化。
  2. 关联包含了组合和聚合,聚合和组合的区别是聚合的部分可以独立于整体存在,组合的部分不能独立于整体存在。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类图
  • 关系
    • 依赖关系
      • 实例
      • 代码
    • 继承关系
      • 实例
    • 关联关系
      • 示例
    • 聚合关系
      • 示例
    • 组合关系
      • 示例
    • 实现关系
    • 辨析
    相关产品与服务
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档