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了. 一 ...
随机推荐
- MacOS新功能“通用控制”,多台设备操作互联太方便了!
昨天看到macOS推送了12.3的更新,记得之前预告过一个"通用控制"的功能,所以赶紧升级一波体验一下,效果惊艳到我了,赶紧安利一波! 先交代一下现在隔离在家的办公情况,我主要是用 ...
- Mybatis——动态sql+字符串匹配导致的判断问题
在mybatis的学习中,狂神建议字符串匹配直接将模糊匹配的符号放在字符串中,如:匹配'keWord',那么实际所使用的参数应该为'%keyWord%' map.put("keyWord&q ...
- oracle报ORA-12154
环境 [oracle@oracle admin]$ sqlplus -vSQL*Plus: Release 19.0.0.0.0 - Production Version 19.3.0.0.0 问题描 ...
- 4月27日 python学习总结 GIL、进程池、线程池、同步、异步、阻塞、非阻塞
一.GIL:全局解释器锁 1 .GIL:全局解释器锁 GIL本质就是一把互斥锁,是夹在解释器身上的, 同一个进程内的所有线程都需要先抢到GIL锁,才能执行解释器代码 2.GIL的优缺点: 优点: 保 ...
- SWAKS伪造邮件发送
一.SWAKS介绍 swaks(SWiss Army Knife Smtp)SMTP瑞士军刀Swaks是由John Jetmore编写和维护的一种功能强大,灵活,可脚本化,面向事务的SMTP测试工具. ...
- 【网鼎杯2020白虎组】Web WriteUp [picdown]
picdown 抓包发现存在文件包含漏洞: 在main.py下面暴露的flask的源代码 from flask import Flask, Response, render_template, req ...
- 生产出现oom问题,怎么排查?
生产出现oom问题,怎么排查? 1.使用dmesg命令查看系统日志 dmesg |grep -E 'kill|oom|out of memory',可以查看操作系统启动后的系统日志,这里就是查看跟 ...
- 手撕代码:leetcode 309最佳买卖股票时机含冷冻期
转载于:https://segmentfault.com/a/1190000014746613 给定一个整数数组,其中第i个元素代表了第i天的股票价格. 设计一个算法计算出最大利润.在满足以下约束条件 ...
- 怎么样把ModelMap里面的数据放入Session里面?
答:可以在类上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key.
- windows环境Jenkins配置与使用(springboot+war包+vue)
一.后台发布 1.General配置 2.源码管理 3.构建触发器 4.构建环境 5.构建 clean install -Dmaven.test.skip=true -Ptest 6.Post Ste ...