1. 关联关系(Association)
- 定义:关联关系是一种结构化关系,它描述了对象之间的连接,表明一个对象对另一个对象的依赖。关联可以是单向的,也可以是双向的。
- 代码示例:
java
// 学生类
class Student {
private Teacher teacher;
public Student(Teacher teacher) {
this.teacher = teacher;
}
public Teacher getTeacher() {
return teacher;
}
}
// 教师类
class Teacher {
// 这里未体现关联,但如果是双向关联,可添加对应的学生引用
}
- UML 表示:在 UML 图中,关联关系用一条直线表示。直线两端可以有箭头表示方向,如果没有箭头则表示双向关联。可以在直线旁边标注关联的名称和多重性(如 1 对 1、1 对多、多对多等)。例如,一个学生对应一个老师,可标注为 "1 - 1";一个老师可以教多个学生,可标注为 "1 - *"。
2. 聚合关系(Aggregation)
-
定义:聚合是关联关系的一种特殊形式,它代表整体与部分的关系,部分可以脱离整体而存在。
-
代码示例 :
javaimport java.util.ArrayList; import java.util.List; // 图书馆类 class Library { private List<Book> books; public Library() { this.books = new ArrayList<>(); } public void addBook(Book book) { books.add(book); } public List<Book> getBooks() { return books; } } // 书籍类 class Book { public Book() { // 书籍可以独立于图书馆存在 } }
-
UML 表示:在 UML 图中,聚合关系用一条带空心菱形的直线表示,空心菱形指向整体。例如,图书馆是整体,书籍是部分,空心菱形指向图书馆。
3. 组合关系(Composition)
-
定义:组合也是整体与部分的关系,但部分不能脱离整体而存在。部分的生命周期与整体的生命周期一致。
-
代码示例 :
java// 汽车类 class Car { private Engine engine; public Car() { this.engine = new Engine(); } public Engine getEngine() { return engine; } } // 发动机类 class Engine { public Engine() { // 发动机不能脱离汽车存在 } }
-
UML 表示:在 UML 图中,组合关系用一条带实心菱形的直线表示,实心菱形指向整体。例如,汽车是整体,发动机是部分,实心菱形指向汽车。
4. 泛化关系(Generalization)
-
定义:泛化关系也就是继承关系,它表示一个类(子类)继承另一个类(父类)的属性和方法。子类可以扩展父类的功能,也可以重写父类的方法。
-
代码示例 :
java// 动物类(父类) class Animal { public void eat() { System.out.println("Animal is eating."); } } // 狗类(子类) class Dog extends Animal { @Override public void eat() { System.out.println("Dog is eating."); } public void bark() { System.out.println("Dog is barking."); } }
-
UML 表示:在 UML 图中,泛化关系用一条带空心三角形的直线表示,空心三角形指向父类。例如,狗类继承自动物类,空心三角形指向动物类。
5. 实现关系(Realization)
-
定义:实现关系用于接口和实现该接口的类之间。类实现了接口中定义的方法。接口定义了一组抽象的操作,而实现类负责具体的实现。
-
代码示例 :
java// 可飞行接口 interface Flyable { void fly(); } // 鸟类实现可飞行接口 class Bird implements Flyable { @Override public void fly() { System.out.println("Bird is flying."); } }
-
UML 表示:在 UML 图中,实现关系用一条带空心三角形的虚线表示,空心三角形指向接口。例如,鸟类实现了可飞行接口,空心三角形指向可飞行接口。
6. 依赖关系(Dependency)
-
定义:依赖关系表示一个类使用另一个类的服务。通常是一个类的方法使用了另一个类的对象作为参数、局部变量或调用了另一个类的静态方法。
-
代码示例 :
java// 客户类 class Customer { public void placeOrder(Order order) { // 使用Order对象 System.out.println("Customer places an order: " + order.getOrderNumber()); } } // 订单类 class Order { private String orderNumber; public Order(String orderNumber) { this.orderNumber = orderNumber; } public String getOrderNumber() { return orderNumber; } }
-
UML 表示:在 UML 图中,依赖关系用一条带箭头的虚线表示,箭头指向被依赖的类。例如,客户类依赖于订单类,箭头指向订单类。