| NenTang.vn |
Chương 3-Bài 2. Mối quan hệ giữa các lớp trong sơ đồ lớp (Class Diagram) UML |
||
| Tác giả: Dương Nguyễn Phú Cường | Ngày đăng: 3/11/2025, 3:15 | Lượt xem: 1633 |
Mối quan hệ giữa các lớp trong sơ đồ lớp (Class Diagram) UMLTrong sơ đồ lớp UML, các lớp không tồn tại độc lập mà có mối quan hệ với nhau. Dưới đây là các loại quan hệ chính, cùng với giải thích chi tiết và ví dụ cụ thể. Association (Quan hệ liên kết)? Định nghĩa:
? Ví dụ thực tế: +-------------+ +-------------+ | Student | 1 N | Course | +-------------+ ------- +-------------+ Code Java: class Student {
String name;
List<Course> courses; // Một sinh viên có thể học nhiều khóa học
}
class Course {
String courseName;
List<Student> students; // Một khóa học có nhiều sinh viên
}
? Đặc điểm nhận diện:
Aggregation (Tập hợp - Quan hệ "has-a" yếu)? Định nghĩa:
? Ví dụ thực tế: +--------------+ ◇----- +-----------+ | Department | 1 N | Employee | +--------------+ +-----------+ Code Java: class Employee {
String name;
}
class Department {
String departmentName;
List<Employee> employees; // Một phòng ban có nhiều nhân viên
}
? Đặc điểm nhận diện:
Composition (Thành phần - Quan hệ "has-a" mạnh)? Định nghĩa:
? Ví dụ thực tế: +--------+ ◆----- +-------+ | House | 1 N | Room | +--------+ +-------+ Code Java: class Room {
String type;
}
class House {
private List<Room> rooms = new ArrayList<>();
House() {
this.rooms.add(new Room()); // Khi House được tạo, Room cũng được tạo
}
}
? Đặc điểm nhận diện:
Sự khác biệt của mối quan hệ Aggregation (Tập hợp) và Composition (Thành phần)
Generalization (Kế thừa – Inheritance)? Định nghĩa:
? Ví dụ thực tế: +--------+
| Animal |
+--------+
△
----------------
| |
+--------+ +-------+
| Dog | | Cat |
+--------+ +-------+
Code Java: class Animal {
void makeSound() {
System.out.println("Some sound...");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Woof!");
}
}
? Đặc điểm nhận diện:
Dependency (Phụ thuộc)? Định nghĩa:
? Ví dụ thực tế: +--------+ ---→ +-----------------+ | Order | | PaymentService | +--------+ +-----------------+ Code Java: class PaymentService {
void processPayment() {
System.out.println("Processing payment...");
}
}
class Order {
void checkout() {
PaymentService payment = new PaymentService();
payment.processPayment();
}
}
? Đặc điểm nhận diện:
Tóm tắt các loại quan hệ và cách nhận diện
Kết luận
|
| Sản phẩm của Nền tảng | NenTang.vn - Hành trang tới Tương lai |