java uml 类图
2021-03-31 10:54:58 2 举报
java UML 类图 快速上手
作者其他创作
大纲/内容
“+ 表示 public“-”表示 private“# 表示 protected “” 表示 default默认值 =
继承 extends
关联关系 成员变量包含
抽象类
数字*或者0..*:表示0到多个0..1:表示0或者1个,在Java中经常用一个空引用来实现1..*:表示1到多个
聚合 空心菱形在整体一方,箭头指向部分一方
汽车
public class Driver { public void driverCar(Car c)}
父亲
斜体表示抽象的部分
身体
public class Father { private Child child;}
普通类
Person
- name: String - age: Integer = 1
+ setName(String name): void+ getName(): String+ getJob: String
在Java代码形式上,聚合和组合关系中的部分对象是整体对象的一个成员变量。但是,在实际应用开发时,两个对象之间的关系到底是聚合还是组合,有时候很难区别。在Java中,仅从类代码本身是区分不了聚合和组合的。如果一定要区分,那么如果在删除整体对象的时候,必须删掉部分对象,那么就是组合关系,否则可能就是聚合关系。从业务角度上来看,如果作为整体的对象必须要部分对象的参与,才能完成自己的职责,那么二者之间就是组合关系,否则就是聚合关系。例如,汽车与轮胎,汽车作为整体,轮胎作为部分。如果用在二手车销售业务环境下,二者之间就是聚合关系。因为轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其它汽车使用。如果用在驾驶系统业务环境上,汽车如果没有轮胎,就无法完成行驶任务,二者之间就是一个组合关系。再比如网上书店业务中的订单和订单项之间的关系,如果订单没有订单项,也就无法完成订单的业务,所以二者之间是组合关系。而购物车和商品之间的关系,因为商品的生命周期并不被购物车控制,商品可以被多个购物车共享,因此,二者之间是聚合关系。
<<interface>>Person
+ geType(): String
List
A--->B为A的构造器或方法中的局部变量、方法或构造器的参数、方法的返回值,或者A调用B的静态方法。public class A { public void method1() { //A依赖于B的第一种表现形式:B为A的局部变量 B b = new B(); b.method1(); } public void method2() { //A依赖于B的第二种表现形式: 调用B的静态方法 B.method2(); } public void method3(B b) { //A依赖于B的第三种表现形式:B作为A的方法参数 String s = b.field1; } //A依赖于B的第四种表现形式:B作为A的方法的返回值 public B method4() { return new B(); }}
Driver
孩子
不可分割包含头、躯干、四肢,它们的生命周期一致。当人出生时,头、躯干、四肢同时诞生。当人死亡时,作为人体组成部分的头、躯干、四肢同时死亡
public class B { public String field1; //成员变量 public void method1() { System.println(\"在类B的方法1中\"); } public static void method2() { //静态方法 System.out.println(\"在类B的静态方法2中\"); }}
关联关系? 组合? 聚合?
老师
手
组合?聚合?
Car
+ setName(String name): void+ getName(): String
1 0..1
接口
其中部分可以脱离整体而存在。比如雁群和一只大雁的关系,就是聚合关系,大雁离开雁群还是可以独立存在的。再比如警察与制服的关系,制服也是警察的一部分,制服可以脱离警察而存在表示整体与部分的关系,但是部分可以脱离整体而存在。例如一个Teachers对象有一辆汽车Car,此时Car就是Teachers的一部分,但是Car可以脱离Teachers而存在
ArrayList
AbstractList
聚合关系是关联关系的一种,耦合度强于关联,他们的代码表现是相同的,仅仅是在语义上有所区别相比于聚合,组合是一种耦合度更强的关联关系
依赖关系 弱关联关系 由使用方指向被使用方
组合 用带实心的菱形直线表示,其中菱形指向整体
public class ArrayList<E> extends AbstractList<E>
实现 implements
public class ArrayList<E> implements List<E>
收藏
收藏
0 条评论
下一页