Trong 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ể.
? Định nghĩa:
? Ví dụ thực tế:
Giả sử một sinh viên (Student) có thể ghi danh vào nhiều khóa học (Course), và một khóa học có nhiều sinh viên.
+-------------+ +-------------+ | 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:
1
, N
, 0..1
, 1..*
, *
để mô tả mối quan hệ.? Định nghĩa:
? Ví dụ thực tế:
Một lớp "Department" có nhiều "Employee", nhưng nếu phòng ban bị xóa, nhân viên vẫn có thể tồn tại.
+--------------+ ◇----- +-----------+ | 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:
? Định nghĩa:
? Ví dụ thực tế:
Một "House" (ngôi nhà) có nhiều "Room" (phòng), nhưng nếu ngôi nhà bị phá, tất cả các phòng cũng bị phá hủy.
+--------+ ◆----- +-------+ | 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:
Tiêu chí | Aggregation (Tập hợp) | Composition (Thành phần) |
---|---|---|
Mức độ liên kết | Yếu (weak association) | Mạnh (strong association) |
Sự phụ thuộc | Đối tượng con có thể tồn tại độc lập với đối tượng cha | Đối tượng con không thể tồn tại nếu không có đối tượng cha |
Xóa đối tượng cha | Không ảnh hưởng đến đối tượng con | Xóa cha → xóa con |
Ký hiệu UML | Hình thoi rỗng (◇) | Hình thoi đặc (◆) |
? Định nghĩa:
? Ví dụ thực tế:
Một "Dog" (chó) và "Cat" (mèo) đều là "Animal" (động vậ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:
? Định nghĩa:
? Ví dụ thực tế:
Một "Order" phụ thuộc vào "PaymentService" để xử lý thanh toán.
+--------+ ---→ +-----------------+ | 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:
Quan hệ | Biểu diễn | Đặc điểm chính |
---|---|---|
Association (Liên kết) | Đường thẳng | Một lớp có liên kết với lớp khác (1-1, 1-N, N-N). |
Aggregation (Tập hợp) | Hình thoi rỗng (◊) | Lớp con có thể tồn tại độc lập với lớp cha. |
Composition (Thành phần) | Hình thoi đen (◆) | Lớp con bị xóa khi lớp cha bị xóa. |
Generalization (Kế thừa) | Mũi tên rỗng (△) | Lớp con kế thừa thuộc tính và phương thức của lớp cha. |
Dependency (Phụ thuộc) | Đường nét đứt (---→) | Một lớp dùng lớp khác mà không sở hữu nó. |
Cùng nhau học tập, khám phá các kiến thức nền tảng về Lập trình web, mobile, database nhé.
Nền tảng kiến thức - Hành trang tới tương lai hân hạnh phục vụ Quý khách!
Khám phá, trải nghiệm ngay
Vui lòng đăng nhập để gởi bình luận!
Đăng nhậpChưa có bình luận nào!