UML中类关系表示与Java代码中的对应关系
UML中类关系表示与Java代码中的对应关系
1. 类的UML表示法

上图中,Employee 类有两个String类型的私有属性和一个返回值为String类型public 方法 getName();
2. 类的关联关系
关联(Association)关系是一种结构化关系,用于表示一类对象与另一类对象之间有联系。
在代码实现上,通常将一个类的对象作为另一个类的成员变量。
通常用 带箭头的直线表示关联关系.
- 双向关联

- 单向关联

- 限定关联
限定关联通常是从较大集合中选择一个实例。
用代码实现限定关联时,成员变量通常是Map,而Map的键就是限定符。

- 自关联

- 聚合关系
聚合(Aggregation)关系表示整体与部分的关联关系。聚合关系用带空心菱形的直线表示。
在用代码实现聚合关系时,成员对象通常作为构造方法、Setter方
法或业务方法的参数注入整体对象中。

- 组合关系
组合(Composition)关系也表示类之间整体和部分的关联关系,但
是在组合关系中,整体对象可以控制成员对象的生命周期,一旦整体对
象不存在,成员对象也将不存在,成员对象与整体对象之间具有“同生
共死”的关系。在UML中,组合关系用带实心菱形的直线表示。
在用代码实现组合关系时,通常在整体类的构造方法中直接实例化
成员类。成员对象域整体对象有同样的生命周期,也就是要“共生死”,
这也是组合和聚合的主要区别。

3. 类的依赖关系
依赖(Dependency)关系是一种使用关系。
大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
依赖关系通常通过3种方式来实现:
- 将类的对象作为另一个类中方法的参数。
- 一个类的方法中将类的对象作为局部变量。
- 一个类的方法中调用另一个类的静态变量。
4. 类的泛化关系
泛化(Generalization)关系也称为继承关系,用于描述父类与子类之间的关系。父类称为基类或超类,子类称为派生类。
在UML中,泛化关系用带空心三角形的直线来表示。
在代码实现时,我们使用面向对象的继承机制来实现泛化关系。
5. 接口与实现关系
在UML中,类与接口之间的实现关系通常是用带空心三角形的虚线来表示。
参考资料
UML中类关系表示与Java代码中的对应关系的更多相关文章
- java高级用法之:在JNA中将本地方法映射到JAVA代码中
目录 简介 Library Mapping Function Mapping Invocation Mapping 防止VM崩溃 性能考虑 总结 简介 不管是JNI还是JNA,最终调用的都是nativ ...
- Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)
<bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...
- 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...
- Android color(颜色) 在XML文件和java代码中
Android color(颜色) 在XML文件和java代码中,有需要的朋友可以参考下. 1.使用Color类的常量,如: int color = Color.BLUE;//创建一个蓝色 是使用An ...
- 关于在Java代码中写Sql语句需要注意的问题
最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...
- java代码中获取进程process id(转)
另一方面,线程ID=进程ID+内部线程对象ID并不成立, 参考: blog.csdn.net/heyetina/article/details/6633901 如何在java代码中获取进 ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- Java代码中获取Json的key值
测试json字符串: {"access_token":"hkbQl5o_l67dZ7_vJRATKBwTLk9Yj5QyMuOJThAr8Baj0xWf4wxW1p4ym ...
- 在java代码中执行js脚本,实现计算出字符串“(1+2)*(1+3)”的结果
今天在公司项目中,发现一个计算运费的妙招.由于运费规则各种各样,因此写一个公式存到数据库.下次需要计算运费时,直接取出这个公式,把公式的未知变量给替换掉,然后计算出结果就是ok了. 一 ...
随机推荐
- emu8086实现两位数加法运算
题目说明:给出一个公式,例如 "35 + 28 = ",输出计算结果 一.准备材料 DOS功能调用表:https://blog.csdn.net/mybelief321/artic ...
- ASP.NET Core 6 Minimal API的模拟实现
Minimal API仅仅是在基于IHost/IHostBuilder的服务承载系统上作了小小的封装而已,它利用WebApplication和WebApplicationBuilder这两个类型提供了 ...
- centos7使用chrony同步阿里云时间
1.yum -y install chrony2.cp /etc/chrony.conf /etc/chrony.conf.bak3.sed -i '/^server/s/^/#/g' /etc/ch ...
- MySQL二进制binlog日志说明以及利用binlog日志恢复数据
MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...
- 浅析Java反射--Java
前言 上篇文章我们提到了可以使用反射机制破解单例模式.这篇文章我们就来谈一谈什么是反射,反射有什么用,怎么用,怎么实现反射. 概述 Java的反射(reflection)机制:是指在程序的运行状态中, ...
- 记-Windows环境下Prometheus+alertmanager+windows_exporter+mtail监控部署
1.概述 最近因项目需要统计服务的负载情况及机器的负载情况,但是项目里面却没有相关统计而服务所在的机器也没有相关的监控,因为工期原因就选择了相对轻量级的prometheus方案.其中windows_e ...
- MAVEN setting文件
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...
- 转载:STL常用容器的底层数据结构实现
转载至:https://blog.csdn.net/qq_28584889/article/details/88763090 vector :底层数据结构为数组,支持快速随机访问 list:底层数据结 ...
- Redis String Type
Redis字符串的操作命令和对应的api如下: set [key] [value] JedisAPI:public String set(final String key, final String ...
- 构造器注入和 setter 依赖注入,那种方式更好?
每种方式都有它的缺点和优点.构造器注入保证所有的注入都被初始化,但是 setter 注入提供更好的灵活性来设置可选依赖.如果使用 XML 来描述依赖, Setter 注入的可读写会更强.经验法则是强制 ...