UML类图快速入门

转载请注明出处:http://blog.csdn.net/ljmingcom304/article/details/50462913
本文出自: 【梁敬明的博客】

1.类的UML图例

  使用StartUML建模工具定义一个Person类,包含name、age和birthday三种属性,以及eat( )、drink( )和play( )三个方法。在UML类图中该类如下图所示:
UML类图快速入门_第1张图片
  对应的Java代码片段为:    
public abstract class Person{

    public String name;
    protected int age = 18;
    private Date birthday;

    protected abstract void eat(String data)

    public void drink(){

    }

    private boolean play(Object[] obj){
        return false;
    }

}
  UML类图属性的表示方式为: 可见性 名称:类型[=缺省值]
  UML类图方法的表示方式为: 可见性 名称(参数列表)[:返回类型]
  静态的属性或方法通过下划线表示,抽象的方法通过斜体表示。可见性包括public(+)、private(-)、propected(#);名称包括属性名称和方法的名称,用一个字符串进行表示;类型表示属性的数据类型;缺省值是一个可选项,表示属性的初始值;参数列表表示方法的参数,多个参数间用逗号隔开;返回类型也是一个可选项,如果是构造方法则无返回类型,若是普通方法可以返回指定类型也可以返回空类型(void)。

2.类与类之间关系

2.1关联关系(Association)

  关联关系是一种结构化的关系,表示一类对象与另一类对象的联系。
  单项关联是指一个类的作为另一个类属性的被包含的关系。
public class Person{
    private Cat cat;
    ......
}

public class Cat{
    ......
}
  双向关联是指两个类具有属性间的相互包含的关系。
UML类图快速入门_第2张图片
public class Teacher{
    private Student student;
    ......
}

public class Student{
    private Teacher teacher;
    ......
}
  自关联是指一个类的属性类型是该类本身。
UML类图快速入门_第3张图片

public class Node{ 
private Node subNode;
......
}

  多重关联是指两个关联对象在数量上的对应关系,对象之间的多重性可以在关联直线上用数字或数组范围表示。表示方式如下表:

UML类图快速入门_第4张图片

一个人可以不养猫,也可以养很多只猫,但是一只猫只能有一个主人。 

public class Person{
    private Cat[] cat;
    ......
}

public class Cat{
    ......
}

2.2聚合关系(Aggregation)

  聚合关系是整体与部分的关系,成员对象是整体的一部分,但是成员对象可以脱离主题而独立存在。成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象。
 

聚合关系

public class Car{
    private Tyre tyre;

    public Car(Tyre tyre){
        this.tyre = tyre;
    }

    public void setTyre(Tyre tyre){
        this.tyre = tyre;
    }

}

public class Tyre{
    ......
}

2.3组合关系(Composition)

  组合关系也是整体与部分的关系,但是整体对象可以控制成员对象的生命周期,当整体对象消失时,成员对象也将不复存在。

组合关系

public class Country{
    private Person person;

    public Country(){
        person = new Person();
    }

}

public class Person{
    ......
}

2.4依赖关系(Dependency)

  依赖关系是一种使用关系,特定事务的改变可能会影响到使用该事务的其他事务,在需要表示一个事务使用另一个事务是使用依赖关系。

UML类图快速入门_第5张图片

public class Person{

    public void drive(Car car){
        car.move();
    }

}

public class Car{

    public void move(){
        ......
    }

}

2.5泛化关系(Generalization)

  泛化关系又称继承关系,用于描述父类与子类之间的关系,父类又称作基类或者超类,子类又称作派生类。

UML类图快速入门_第6张图片

public class Person{ 
......
}
public class Son extends Person{
......
}

2.6实现关系(Realization)

  实现关系是类与接口之间的关系,类的操作实现了接口中所声明的操作。
  

UML类图快速入门_第7张图片

public interface Person{

    ......

}

public class ZhangSan implements Person{

    ......

}

你可能感兴趣的:(设计模式)