03-类图画法(稍侯讲)

既然要画类图,类与类之间的关系你是要知道的

参考网址:https://www.cnblogs.com/x-ll123/p/9129856.html

泛化(继承) generalization

泛化即子类继承父类
箭头:指向父类

实现 Realization

实现类实现接口
箭头:指向接口

关联 Association

是一种拥有的关系, 就是一个对象A中持有对象B的引用,这样对象B中的属性和方法A也知道了,
在实际的代码中体现在一个类上声明一个成员B类型的变量
箭头指向:A类

聚合 Aggregation (弱依赖)##

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

箭头:带空心菱形的实心线,菱形指向整体(学校和学生关系中菱形指向学校)

组合 Composition(成员变量)(强依赖)

是整体与部分的关系, 但部分不能离开整体而单独存在. 如公司和部门是整体和部分的关系, 没有公司就不存在部门
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
代码体现:成员变量
箭头指向:带实心菱形的实线,菱形指向整体
聚合和组合关系中,菱形指向包含关系中大的一端

依赖 Dependency

是一种使用的关系, 即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖
代码表现:局部变量、方法的参数或者对静态方法的调用
箭头指向:带箭头的虚线,指向被使用者

各种关系的强弱顺序:

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

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

  1. 依赖关系:关系对象出现在局部变量或者方法的参数里,或者关系类的静态方法被调用
    (2) 关联关系Association:关系对象出现在实例变量中 (引用 比如一对一)
    (3) 聚合关系Aggregation:关系对象出现在实例变量中 (引用 比如一对多 弱依赖,所以是空心)
    (4) 组合关系Composition:关系对象出现在实例变量中 (引用 比如一对多 强依赖,所以是实心)
    (5) 泛化关系generalization: extends
    (6) 实现Realization: implements

反向类图

https://jingyan.baidu.com/article/6c67b1d68db1bd2786bb1e68.html

  • 打开PowerDesiger软件,点击文件->建立新模型,新建Obect-Oriented Model

  • 点击语言->Reverse Engineer Java,弹出反向生成类图设置窗口

  • 在反向生成类图设置窗口中,选择Reverse Engineer,可以选择Java Files或Java Directories等,在这里我选择Java Directories

  • 然后点击Add按钮添加目录,在这里我选择一个java源文件目录

  • 点击确定,PowerDesigner会显示生成进度窗口,完成以后在PowerDesigner工作空间下会显示类图目录结构

你可能感兴趣的:(03-类图画法(稍侯讲))