Quan hệ giữa các class trong class diagram UML

Mọi người cho e hỏi là nếu class ViewDetail cần gọi phương thức getBillByMonth() từ lớp BillDetail thì nó liên kết trực tiếp với lớp BillDetail hay liên kết tới lớp Bill vậy ạ. Em cảm ơn :slight_smile:

t1
t2

Về câu hỏi của cậu, do cậu chưa mô tả đầy đủ quan hệ giữa Bill với ViewBillDetail, nên:

  • Nếu Bill là thuộc tính của ViewBillDetail, cậu vẽ quan hệ kết tập giữa BillViewBillDetail.
  • Nếu Bill chỉ được sử dụng bởi 1 method (cậu tạo instance của Bill trong 1 method nào đó, chứ Bill không phải thuộc tính), cậu vẽ quan hệ sử dụng giữa BillViewBillDetail.

Cơ mà:

  • Tại sao BillDetail lại kế thừa Bill vậy? Về mặt ngữ nghĩa, BillDetail nên là một thành phần của Bill, chứ không phải kế thừa.
  • Tại sao getBillIdByDay lại không có trên Bill? Vì nếu sub class có method không được định nghĩa ở super class, hẳn nhiên thiết kế vi phạm Liskov substitution principle rồi :smile:
2 Likes

Xin lỗi mn, mk quên ko mô tả quan hệ giữa các lớp. Sơ qua là như thế này: người dùng nhấn vào tháng bất kì , hệ thống hiện ra danh sách hóa đơn của tháng đó. Thì để có dữ liệu hiển thị lên giao diện ViewBillDetail, lớp ViewBillDetail sẽ gọi lớp Bill ( hoặc BillDetail, cái này mk đang thắc mắc đây), sau đó thì lớp đó gọi phương thức getBillByDay() và trả kết quả về để hiển thị.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?