Các mối quan hệ giữa các lớp

9 383 1
Các mối quan hệ giữa các lớp

Đang tải... (xem toàn văn)

Thông tin tài liệu

Các mối quan hệ lớp Các mối quan hệ lớp Bởi: Đoàn Văn Ban Sự liên kết kết hợp đối tượng Một liên kết kết nối vật lý logic đối tượng với Phần lớn liên kết kết nối hai đối tượng với Tuy nhiên có liên kết ba nhiều ba đối tượng Nhưng ngôn ngữ lập trình cài đặt liên kết (phép toán) nhiều ba Một kết hợp mô tả nhóm liên kết có chung cấu trúc ngữ nghĩa Vậy, liên kết thể lớp Liên kết kết hợp thường xuất dạng động từ tài liệu mô tả toán ứng dụng Hình mô tả ký hiệu cho quan hệ liên kết kết hợp Liên kết đối tượng Hai đối tượng thuộc lớp SanBay: Nội Bài Gia Lâm liên kết với đối tượng Hà Nội lớp TinhThanh theo quan hệ phục vụ Quan hệ liên kết hai đối tượng biểu diễn đoạn thẳng nối chúng với có tên gọi nhãn quan hệ) Nhãn quan hệ thường động từ Khi muốn biểu diễn cho quan hệ chiều sử dụng mũi tên để rõ hướng quan hệ 1/9 Các mối quan hệ lớp Quan hệ kết hợp lớp Khi mô hình nhập nhằng tên quan hệ kết hợp tuỳ chọn Sự nhập nhằng xuất hai lớp có nhiều quan hệ kết hợp, Giữa lớp NhanVien lớp CongTy có hai quan hệ làm việc có cổ phần Khi có nhiều quan hệ nên gán tên vào đường nối tên vai trò đầu quan hệ để tránh nhập nhằng Quan hệ kết hợp lớp Không nên nhầm lẫn liên kết với giá trị Giá trị liệu nguyên thuỷ liệu số xâu ký tự Liên kết mối liên quan hai đối tượng Trong giai đoạn phân tích ta phải mô hình (xác định) tất tham chiếu tới đối tượng thông qua liên kết nhận dạng nhóm liên kết tương tự thông qua quan hệ kết hợp Đến giai đoạn thiết kế ta chọn cấu trúc trỏ, khoá ngoại, số cách khác để cài đặt quan hệ Mô hình phân tích hình phát triển sang giai đoạn thiết kế sau: Mô hình thiết kế lớp Trong đó, lớp TinhThanh có thêm thuộc tính cacSanBay danh sách cấu trúc mảng, hay trỏ, v.v Ta thiết kế theo cách khác, thay bổ sung thuộc tính cacSanBay vào lớp TinhThanh bổ sung oTinhThanh vào lớp SanBay 2/9 Các mối quan hệ lớp Bội số Quan hệ kết hợp thường quan hệ hai chiều: đối tượng kết hợp với số đối tượng lớp khác ngược lại Để xác định số đối tượng tham gia vào đầu mối quan hệ ta sử dụng khái niệm bội số Bội số xác định số lượng thể (đối tượng) lớp quan hệ kết hợp với lớp khác Cũng cần phân biệt bội số (hay số) với lực lượng Bội số ràng buộc kích cỡ tuyển tập, lực lượng đếm số phần tử tuyển tập Do đó, bội số ràng buộc lực lượng phần tử lớp tham gia vào quan hệ xác định trước Trong UML bội số biểu diễn sau: Để phân biệt chiều quan hệ kết hợp ta sử dụng mũi tên chiều kết hợp Quan hệ kết hợp hai chiều hai lớp Hình mô tả sau: người lớp Nguoi có nhiều ô tô (thuộc lớp Oto) ngược lại ô tô phải sở hữu người thuộc lớp Nguoi Các vai trò quan hệ Vai trò tên gọi nhiệm vụ thường danh từ, gán cho đầu quan hệ kết hợp Hình mô tả hai lớp SanBay lớp CacChuyenBay có quan hệ kết hợp với Một sân bay điểm đến chuyến bay lại điểm xuất phát chuyến bay khác Ngược lại chuyến bay phải bay từ sân bay tới sân bay khác 3/9 Các mối quan hệ lớp Vai trò quan hệ kết hợp Khi mô hình nhập nhằng tên vai trò tuỳ chọn Sự nhập nhằng xuất hai lớp có nhiều quan hệ hình 6, lớp lại có quan hệ với (quan hệ đệ qui) Một người hai người (cha-mẹ) hai cha -mẹ lại có nhiều Quan hệ mô tả hình Vai trò qua hệ kết hợp Quan hệ kết nhập Kết nhập loại quan hệ kết hợp, tập trung thể quan hệ tổng thể phận Kết nhập thường biểu diễn cho quan hệ “có một”, “là phận của” , “bao gồm”, v.v thể mối quan hệ lớp tổng thể có, gồm, chứa hay liên kết với nhiều lớp thành phần Người ta chia quan hệ kết nhập thành ba loại: • Kết nhập thông thường • Kết nhập chia sẻ • Kết nhập hợp thành hay quan hệ hợp thành Kết nhập thông thường Quan hệ kết nhập thông thường, gọi tắt kết nhập thể mối liên kết hai lớp, đối tượng lớp bao gồm số đối tượng lớp kia, song không tồn nội lớp Lớp phía phận phận logic phía tổng thể chúng không chia sẻ với lớp khác 4/9 Các mối quan hệ lớp Quan hệ kết nhập thông thường Trong quan hệ này, việc quản lý đối tượng lớp liên quan khác Ta loại bỏ số tàu chiến hạm đội cho số lại 3, tương tự bổ sung vào số tàu chiến cho không 10 Nhưng loại bỏ hạm đội phải loại bỏ tất tàu chiến hạm đội tàu chiến thuộc hạm đội Kết nhập chia sẻ Quan hệ kết nhập chia sẻ loại kết nhập, phía phận tham gia vào nhiều phía tổng thể Quan hệ kết nhập thông thường Mỗi dự án có nhiều người tham gia người lại tham gia nhiều hai dự án Trong quan hệ này, ta loại bỏ, hay thành lập dự án (phía tổng thể) không thiết phải loại bỏ, hay phải tuyển thêm người tham gia (phía phận) vào dự án kiểu kết nhập Tuy nhiên xử lý mối quan hệ phải cập nhật lại mối liên kết nhân viên tham gia vào dự án tương ứng Kết nhập hợp thành Quan hệ vật có chứa số phận phận tồn vật lý bên vật tổng thể Do thực huỷ bỏ, hay thiết lập bên tổng thể phận bên thành phần bị huỷ bỏ phải bổ sung Lớp Window chứa lớp Text, Menu DialogBox Trong UML có hai cách biểu diễn quan hệ hợp thành sau: Quan hệ kết nhập hợp thành 5/9 Các mối quan hệ lớp Quan hệ tổng quát hoá Tổng quát hoá chuyên biệt hoá hai cách nhìn dưới/lên trên/xuống phân cấp lớp, mô tả khả quản lý cấp độ phức tạp hệ thống cách trừu tượng hoá lớp Tổng quát hoá từ lớp lên sau hình thành lớp tổng quát (lớp trên, lớp cha), tức cấu trúc lớp từ đến gốc Chuyên biệt hoá trình ngược lại tổng quát hoá, cho phép tạo lớp (lớp con) khác lớp cha Trong UML, tổng quát hoá quan hệ kế thừa hai lớp Nó cho phép lớp (lớp dưới, lớp kế thừa, hay lớp dẫn xuất) kế thừa trực tiếp thuộc tính hàm thuộc loại công khai, hay bảo vệ (protected) lớp cha (lớp sở, lớp trên) Trong quan hệ tổng quát hoá có hai loại lớp: lớp cụ thể lớp trừu tượng Lớp cụ thể lớp có đại diện, thể cụ thể Ngược lại, lớp trừu tượng lớp không (đối tượng) cụ thể hệ thống thực Các lớp cháu lớp trừu tượng lớp trừu tượng, nhiên cấu trúc phân cấp theo quan hệ tổng quát hoá nhánh phải kết thúc lớp cụ thể (lá lớp) Ta định nghĩa hàm trừu tượng cho lớp trừu tượng, hàm chưa cài đặt nội dung thực lớp chúng khai báo Những hàm trừu tượng cài đặt lớp cháu sau lớp cụ thể Lớp NhanVien có ký hiệu {abstract} sau tên lớp lớp trừu tượng, đối tượng cụ thể Hai lớp con: lớp NguoiBanHang lớp CongNhan hai lớp cụ thể Hai lớp có thuộc tính, thao tác giống lớp NhanVien có thuộc tính: hoTen, diaChi có hàm tinhLuong(), hienThi(), lớp bổ sung thêm số thuộc tính, thao tác để đặc tả cho nhóm đối tượng cụ thể Lớp NguoiBanHang bổ sung thêm thuộc tính soluongBanDuoc lớp CongNhan bổ sung thuộc tính soLuongSanPham sản xuất Cấu trúc phân cấp lớp NhanVien xác định hình 11 6/9 Các mối quan hệ lớp Lớp trừu tượng cụ thể quan hệ tổng quát hóa • Quan hệ tổng quát kết hợp hai quan hệ liên quan đến hai lớp, chúng có điểm khác Quan hệ kết hợp mô tả mối liên kết hai nhiều đối tượng quan hệ khái quát mô tả phương diện khác thể • Trong giai đoạn phân tích, quan hệ kết hợp quan trọng quan hệ tổng quát hoá Kết hợp bổ sung thêm thông tin cho lớp Ngược lại, tổng quát hoá loại bỏ thông tin bị chia sẻ lớp cháu chúng kế thừa từ lớp cha • Trong giai đoạn thiết kế tổng quát hoá lại quan trọng Người phát triển hệ thống quan tâm để phát cấu trúc liệu khâu phân tích phát hành vi khâu thiết kế Tổng quát hoá cung cấp chế sử dụng lại để thể xác hành vi mã hoá thư viện lớp • Quan hệ kết nhập tổng quát khác Cả hai làm xuất cấu trúc thông qua bao đóng bắc cầu quan hệ sở, quan hệ tổng quát mối quan hệ “hoặc” (OR) quan hệ kết nhập mối quan hệ “và” (AND) Hình 11 mô tả khác quan hệ tổng quát hoá kết nhập Kế thừa bội Kế thừa bội cho phép lớp kế thừa thuộc tính, thao tác quan hệ kết hợp từ nhiều lớp sở Trong quan hệ kế thừa bội dẫn đến pha trộn thông tin từ nhiều nguồn liệu khác từ lớp kế thừa Quan hệ kế thừa đơn, lớp kế thừa từ lớp sở, thường tạo cấu trúc cây, kế thừa bội lại tổ chức lớp thành đồ thị định hướng phi chu trình Kế thừa bội chế mạnh mô hình hệ thống, đồng thời tạo nhiều phức tạp tính nhập nhằng, không quán liệu [24, 26] Kế thừa bội từ lớp phân biệt Một lớp kế thừa từ nhiều lớp sở khác Lớp Nguoi sở để tạo hai lớp con: HDQuanTri (những người hội đồng quản trị) KinhDoanh (những người kinh doanh) Từ lớp lại xây dựng lớp BanGiamDoc, CoDong (những người đóng cổ phần) kế thừa từ lớp HDQuanTri, lớp NhanVienCT (những người làm việc thường xuyên công ty) NhanVienHD (những người làm việc theo hợp đồng) kế thừa từ lớp KinhDoanh Trong Công ty lại có người vừa cổ đông, vừa nhân viên Những người đối tượng lớp NhanVienCoDong kế thừa từ hai lớp CoDong NhanVienCongTy 7/9 Các mối quan hệ lớp Kế thừa bội từ hai lớp khác có lớp sở chung Kế thừa bội lớp sở chung Kế thừa bội kế thừa có lớp sở chung (lớp Nguoi) Chúng ta tạo lớp kế thừa bội từ nhiều lớp mà chúng lại lớp sở chung Loại kế thừa thường xuất ta muốn pha trộn số chức lớp thư viện khác Chúng ta xét mô hình chương trình đánh cờ Trước nước cờ, chương trình phải nghiên cứu vị trí quân cờ nước cho nước dẫn đến chiến thắng nhanh Trong hình 2-13 (b), đối tượng lớp SearchTree (cây tìm kiếm) đối tượng lớp MoveSubtree (cây nước đi) lớp PossibleMove (lớp nước chọn) Bản thân lớp MoveSubtree lại chứa SearchTree nhỏ Mỗi nước lớp Move lại nước (PossibleMove) lớp nước thời (ActualMove) Lớp PossibleMove kế thừa hành vi chung lớp Move lớp SearchTree Kế thừa bội lớp sở chung Quan hệ phụ thuộc Sự phụ thuộc loại quan hệ liên kết hai phần tử mô hình, thể thay đổi phần tử kéo theo thay đổi phần tử Quan hệ kết hợp thường quan hệ hai chiều, quan hệ phụ thuộc lại thường quan hệ chiều, thể lớp phụ thuộc vào lớp khác Lớp A phụ thuộc vào lớp B khi: • Lớp A sử dụng đối tượng lớp B tham số thao tác (lời gọi hàm), 8/9 Các mối quan hệ lớp • Trong thao tác lớp A có truy nhập tới đối tượng lớp B, • Khi thực thao tác lớp A lại phải tham chiếu tới miền xác định lớp B • Lớp A sử dụng giao diện lớp B Tương tự, hai gói phụ thuộc vào có lớp gói phụ thuộc vào lớp gói Trong UML, quan hệ phụ thuộc thể mũi tên đứt nét Hình 2-18 mô tả quan hệ phụ thuộc hai lớp phụ thuộc hai gói Quan hệ phụ thuộc lớp gói Quan hệ thực hoá Quan hệ thực hoá thể kết nối lớp giao diện Quan hệ thường sử dụng với giao diện lớp làm nhiệm vụ cài đặt dịch vụ (phương thức) khai báo giao diện Quan hệ thực hoá ký hiệu mũi tên đứt nét hình 2-19 Quan hệ thực hoá 9/9

Ngày đăng: 19/10/2016, 22:56

Mục lục

  • Các mối quan hệ giữa các lớp

  • Sự liên kết và kết hợp giữa các đối tượng

  • Các vai trò trong quan hệ

  • Quan hệ kết nhập

  • Quan hệ tổng quát hoá

  • Quan hệ phụ thuộc

  • Quan hệ hiện thực hoá

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan