使用powerDesigner绘制类图

  • 因为后面要理清楚spring中类与类之间关系,我们来看看如何使用powerDesigner绘制类图
  • 你要去下载powerDesiger,一路下一步安装好
  • 打开,点【file】-【New Model】

  • 选择【Model types】-【Object-Oriented Model】-【Class Diagram】-【java】-【ok】

  • 利用右侧的toolbox构建

  • 既然要画类图,类与类之间的关系你是要知道的:
  1. 泛化 generalization
  2. 实现 Realization
  3. 关联 Association   
  4. 聚合 Aggregation
  5. 组合 Composition
  6. 依赖 Dependency

泛化

子类继承父类

实现

实现类继承接口

关联

是一种拥有的关系, 它使一个类知道另一个类的属性和方法,这个概念听起来感觉有点蒙,其实吧,就是一个对象A中持有对象B的引用,这样对象B中的属性和方法是不是A也知道了,就是这个意思,在实际的代码中体现在一个类上声明一个成员变量

类A中有类B的引用

类Person 中有 类 Address

聚合

是整体与部分的关系, 且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系

比如一个学校有高中部和初中部,这些学生加起来都是属于这个学校的,那么从聚合的概念上讲整体就是这个学校,部分就是学生了,且部分可以离开整体而单独存在,这意思是说学生可以转校去别的学校,但是这个学校还是存在的,不会因为一个学生转校了找个学校就没了,

箭头指向:带空心菱形的实心线,菱形指向整体

组合

是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门

组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期

代码体现:成员变量

箭头指向:带实心菱形的实线,菱形指向整体

比如一个大厦肯定是由很多种材料构成的,如果没有这些材料,这大厦就不存在了,意思是这个大厦生命周期over了,

依赖

是一种使用的关系,  即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖

代码表现:局部变量、方法的参数或者对静态方法的调用

箭头指向:带箭头的虚线,指向被使用者

各种关系的强弱顺序:

泛化 >实现>组合> 聚合> 关联> 依赖

最后把这些关系在java代码中的体现总结下:

1) 依赖关系:关系对象出现在局部变量或者方法的参数里,或者关系类的静态方法被调用 
(2) 关联关系:关系对象出现在实例变量中 
(3) 聚合关系:关系对象出现在实例变量中 
(4) 组合关系:关系对象出现在实例变量中 
(5) 泛化关系: extends 
(6) 实现: implements

具体使用请浏览这位台兄的 博客:https://www.cnblogs.com/ganqiyin/p/3156991.html

最新文章

  1. 说说APP接口中的版本控制
  2. HTTP状态码大全
  3. 调用c++接口类
  4. iOS源码之OC相册,可以循环查看图片
  5. DS Tree 已知后序、中序 => 建树 => 求先序
  6. Windows Internals学习笔记(八)IO系统
  7. iis提示“另一个程序正在使用此文件,进程无法访问。(异常来自HRESULT:0x80070020)
  8. 查看mysql库大小,表大小,索引大小
  9. 简易的JQuery设置Cookie
  10. JS设置打印页面并调用本地打印机打印页面
  11. JSP 网页格式判定执行哪一块html
  12. Linux的网卡由eth0变成了eth1,如何修复
  13. 解决cors跨域的filter
  14. 使用 vue-i18n 切换中英文
  15. BZOJ_4269_再见Xor_线性基
  16. [Swift]LeetCode443. 压缩字符串 | String Compression
  17. 深入java----垃圾回收
  18. html模板输头部出现"&#65279"
  19. 解决微信开发工具上trace无法检测到设备,一直停留在“正在搜索设备...”或者trace panel,choose device老出现device not found
  20. Android:困扰了我一个晚上的问题 Failed to resolve: com.android.support:recyclerview-v7.25.3.1

热门文章

  1. JAVA基础_泛型
  2. TKmybatis的框架介绍和原理分析及Mybatis新特性演示
  3. nodejs和vuejs的关系
  4. 2018-8-10-win10-uwp-如何判断一个对象被移除
  5. uboot 的移植过程
  6. 关于IOC
  7. LoadRunner中字符串的操作
  8. itextPDF使用笔记
  9. 模拟——1031D
  10. Laravel 5.8 添加服务层