Uml 类图           

UML 类图

来源 深入浅出UML类图

类图描述类,以及类与类之间的关系。

类最好有单一职责.类的属性是类的数据职责,类的操作是类的行为职责。

类有三种:

设计中,先画 实体类,及他们之间的关系

类图

 可见性 + (public), - (private), # (protected)

  static 函数下面加横线

类图操作说明示意图

类与类之间的关系

关联 (Associatoin)

   符号 : 用实线连接,在连线上两端用动词 或名字表示角色关系   对应代码:一个类的对象作为另一个类的成员变量

关联关系实例

association 的具体形式 :

 * 双向关联

 双向关联实例

 * 单向关联

单向关联实例

 自关联实例

例如:一个界面(Form)可以拥有零个或多个按钮(Button)

 成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在. 例如,汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在.

多重性关联实例    对应代码: 成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中。

  public class Car {
  private Engine engine;

     //构造注入
  public Car(Engine engine) {
   this.engine = engine;
  }

     //设值注入
 public void setEngine(Engine engine) {
     this.engine = engine;
 }
 ……
 }

 public class Engine {
  ……
 } 

对应代码: 整体类的构造方法中直接实例化成员类 public class Head { private Mouth mouth;

     public Head() {
      mouth = new Mouth(); //实例化成员类
     }
    ……
    }

    public class Mouth {
     ……
    } 

依赖关系 dependency

表示一个事物使用另一个事物.

对应代码: 有三种形式:

例如:驾驶员开车,在Driver类的drive()方法中将Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用car的move()方法,且驾驶员的drive()方法依赖车的move()方法,因此类Driver依赖类Car,如图1所示:

依赖关系实例

泛化关系 Generalization

就是继承关系

依赖关系实例

接口与实现关系

UML中用与类的表示法类似的方式表示接口.

接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现(Realization)关系.

依赖关系实例