理解UML类图关系

1、依赖(Dependency)

  • 关系:uses temporarily,使用关系,作为局部变量、方法参数或者对静态方法的调用
  • 代码示例:

    import B;
    public class A{
        public void method1(B b) { // ... }
        public void method2() { B tempB = new B(); // ... }
    }
    
  • 图示(一套带箭头的虚线表示):

dependency

2、聚合(Aggregation)

  • 关系:is part of,整体与部分的关系,作为成员变量
  • 代码:

    import Engine;
    public class Car{
        private Engine engine;
        publilc Engine getEngine(){
            return engine;
        }
    }
    
  • 图示(一条带空心菱形箭头的直线表示):

aggregation

3、组合(Composition)

  • 关系:is entirely made of,更强的整体与部分关系,作为成员变量
  • 代码:

    import Page;
    public class Book{
        private List<Page> pages;
        publilc List<Page> getPages(){
            return pages;
        }
    }
    
  • 图示(一条带实心菱形箭头直线表示):

composition

4、关联(Association)

  • 关系:a usage relationship,包含以上三种关系,作为成员变量
  • 图示(一套带箭头的直线表示):

association

5、实现(Realization)

  • 关系:interface implementation,接口实现
  • 代码:

    import Car;
    public class SUV implements Car{
        ...
    }
    
  • 图示(用一条带空心箭头的虚线表示):

realization

6、泛化(Generalization)

  • 关系:inheritance between classes,继承关系
  • 代码:

    import Widget;
    public class WindowWidget extends Widget{
        ...
    }
    
  • 图示(用一条带空心箭头的实线表示):

generalization

类图表现方式:

接口 : <<interface>> Car

抽象类: 斜体

属性:可选,应该包含所有对象属性

变量名:类型
+ public
# protected
- private
~ package
/ derived
静态属性  下划线标示

方法:可选,可省略get/set方法,不应包含继承方法

方法名(参数):返回类型
+ public
# protected
- private
~ package
/ derived
静态属性  下划线标示
参数: name:type