Mối quan hệ giữa các lớp trong uml

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

Một liên kết là một sự kết nối vật lý hoặc ngắn gọn xúc tích giữa các đối tượng với nhau. Phần lớn những liên kết là sự kết nối giữa hai đối tượng với nhau. Mặc dù cũng bao gồm những liên kết giữa tía hoặc nhiều hơn tía đối tượng. Nhưng những ngôn ngữ lập trình hiện nay hầu như chỉ cài đặt đặt những liên kết (phép toán) nhiều nhất là bố ngôi.

Bạn đang xem: Mối quan hệ giữa các lớp trong uml

Một sự kết hợp là một tế bào tả về một nhóm các liên kết gồm chung cấu trúc và ngữ nghĩa như nhau. Vậy, liên kết là một thể hiện của lớp. Liên kết cùng kết hợp thường xuất hiện ở dạng những động từ trong những tài liệu mô tả câu hỏi ứng dụng.

Hình 1 tế bào tả những ký hiệu cho quan hệ liên kết và kết hợp

*
Liên kết giữa các đối tượng

Hai đối tượng thuộc lớp SanBay: Nội bài bác và Gia Lâm cùng liên kết với đối tượng Hà Nội của lớp TinhThanh theo quan liêu hệ phục vụ. Quan lại hệ liên kết giữa hai đối tượng được biểu diễn bằng đoạn thẳng nối chúng với nhau và có tên gọi nhãn của quan hệ). Nhãn của những quan hệ thường là những động từ. Khi muốn biểu diễn đến quan hệ một chiều thì sử dụng mũi tên để chỉ rõ hướng của quan lại hệ.

*
quan lại hệ kết hợp giữa các lớp

Khi tế bào hình không có sự nhập nhằng thì tên của quan liêu hệ kết hợp là tuỳ chọn. Sự nhập nhằng sẽ xuất hiện lúc giữa nhị lớp gồm nhiều quan hệ kết hợp,


Giữa lớp NhanVien cùng lớp CongTy gồm hai quan lại hệ làm cho việc ở và có cổ phần trong. Khi gồm nhiều quan lại hệ như thế thì nên cần gán tên vào mỗi đường nối hoặc thương hiệu của vai trò ở mỗi đầu của quan tiền hệ để né sự nhập nhằng.

*
quan liêu hệ kết hợp giữa những lớp


tránh việc nhầm lẫn liên kết với giá trị. Giá trị là dữ liệu nguyên thuỷ như là dữ liệu số hoặc xâu ký tự. Liên kết là mối tương quan giữa nhị đối tượng. Vào giai đoạn so với ta phải quy mô (xác định) tất cả các tham chiếu tới những đối tượng trải qua các liên kết cùng nhận dạng được những nhóm liên kết tương tự trải qua các quan tiền hệ kết hợp. Đến giai đoạn thiết kế ta có thể chọn cấu trúc nhỏ trỏ, khoá ngoại, hoặc một số phương pháp khác để tải đặt những quan lại hệ đó.

Mô hình đối chiếu ở hình 4 được phát triển sang trọng giai đoạn thiết kế như sau:

*
quy mô thiết kế các lớp

Trong đó, lớp TinhThanh gồm thêm thuộc tính cacSanBay có thể là list hoặc là cấu trúc mảng, hay con trỏ, v.v. Ta cũng gồm thể thiết kế theo phong cách khác, thay bởi vì bổ sung thuộc tính cacSanBay vào lớp TinhThanh thì bổ sung oTinhThanh vào lớp SanBay.


Bội số

Quan hệ kết hợp thường là quan hệ nhị chiều: một đối tượng kết hợp với một số đối tượng của lớp khác cùng ngược lại. Để xác định số các đối tượng bao gồm thể thâm nhập vào mỗi đầu của mối quan tiền hệ ta tất cả thể sử dụng khái niệm bội số. Bội số xác định số lượng các thể hiện (đối tượng) của một lớp trong quan lại hệ kết hợp với lớp khác. Cũng cần phân biệt bội số (hay bản số) với lực lượng. Bội số là ràng buộc về kích cỡ của một tuyển tập, còn lực lượng là đếm số phần tử của tuyển tập đó. Vày đó, bội số là sự ràng buộc về lực lượng của những phần tử vào một lớp thâm nhập vào quan hệ xác định trước.

Trong UML những bội số được biểu diễn như sau:

*

Để phân biệt chiều của quan hệ kết hợp ta bao gồm thể sử dụng mũi thương hiệu chỉ chiều kết hợp.


*
quan liêu hệ kết hợp nhì chiều giữa nhị lớp

Hình 5 tế bào tả như sau: mỗi người vào lớp Nguoi có thể không tồn tại hoặc bao gồm nhiều xe hơi (thuộc lớp Oto) và ngược lại một xe hơi phải là sở hữu của ít nhất một người như thế nào đó thuộc lớp Nguoi.


Các mục đích trong quan lại hệ

Vai trò là tên gọi gọi một nhiệm vụ thường là một danh từ, được gán đến một đầu của quan liêu hệ kết hợp. Hình 6 tế bào tả hai lớp SanBay và lớp CacChuyenBay có quan hệ kết hợp với nhau. Một trường bay có thể là điểm đến của chuyến bay này cùng lại tất cả thể là điểm xuất phát của chuyến cất cánh khác. Ngược lại một chuyến cất cánh bao giờ cũng phải cất cánh từ một trường bay này tới một sân bay khác

*
Vai trò trong các quan hệ kết hợp

Khi tế bào hình không tồn tại sự nhập nhằng thì tên của phương châm là tuỳ chọn. Sự nhập nhằng sẽ xuất hiện lúc giữa nhị lớp tất cả nhiều quan tiền hệ như hình 6, hoặc khi một lớp lại tất cả quan hệ với chủ yếu nó (quan hệ đệ qui).


Một người tất cả thể là nhỏ của nhì người (cha-mẹ) cùng hai phụ vương -mẹ lại có thể có nhiều con. Quan liêu hệ này có thể tế bào tả như vào hình 7.

*
Vai trò trong những qua hệ kết hợp


Quan hệ kết nhập

Kết nhập là một loại của quan lại hệ kết hợp, tập trung thể hiện quan hệ giữa tổng thể cùng bộ phận. Kết nhập thường biểu diễn mang lại quan hệ “có một”, “là bộ phận của” , hoặc “bao gồm”, v.v. Thể hiện mối quan liêu hệ một lớp tổng thể có, gồm, chứa xuất xắc liên kết với một hoặc nhiều lớp thành phần. Người ta chia quan hệ kết nhập thành cha loại:

Kết nhập thông thường Kết nhập phân tách sẻ và Kết nhập hợp thành hay quan hệ hợp thành.

1. Kết nhập thông thường

Quan hệ kết nhập thông thường, gọi tắt là kết nhập thể hiện mối liên kết giữa hai lớp, trong đó đối tượng của lớp này bao gồm một số đối tượng của lớp kia, tuy nhiên không tồn tại trong nội tại của lớp đó. Lớp phía bộ phận cũng chỉ là một bộ phận logic của phía tổng thể và bọn chúng không được phân chia sẻ với các lớp khác.


*
quan lại hệ kết nhập thông thường

Trong quan hệ này, việc quản lý các đối tượng của các lớp liên quan là không giống nhau. Ta bao gồm thể loại bỏ một số tàu chiến của một hạm đội sao để cho số còn lại ít nhất là 3, tương tự bao gồm thể bổ sung vào một số tàu chiến sao cho không thật 10. Nhưng lúc đã loại bỏ một hạm đội thì phải loại bỏ tất cả những tàu chiến của hạm đội đó vày mỗi tàu chiến chỉ thuộc một hạm đội.


2. Kết nhập chia sẻ

Quan hệ kết nhập chia sẻ là loại kết nhập, trong đó phía bộ phận bao gồm thể tham gia vào nhiều phía tổng thể.


*
quan lại hệ kết nhập thông thường

Mỗi dự án tất cả thể bao gồm nhiều người tham gia cùng mỗi người lại gồm thể thâm nhập nhiều nhất là nhì dự án. Trong quan lại hệ này, ta bao gồm thể loại bỏ, hay thành lập một dự án (phía tổng thể) nhưng không nhất thiết phải loại bỏ, tuyệt phải tuyển thêm những người tham gia (phía bộ phận) vào dự án như kiểu kết nhập ở trên. Tuy vậy khi xử lý những mối quan tiền hệ đó thì phải cập nhật lại những mối liên kết của các nhân viên gia nhập vào các dự án tương ứng.


3. Kết nhập hợp thành

Quan hệ chỉ ra một vật tất cả chứa một số bộ phận và các bộ phận đó tồn tại vật lý bên phía trong vật tổng thể. Bởi vậy lúc thực hiện huỷ bỏ, tốt thiết lập mới mặt tổng thể thì các bộ phận bên thành phần cũng sẽ bị huỷ bỏ hoặc phải được bổ sung.


Lớp Window chứa những lớp Text, thực đơn DialogBox. Trong UML có hai giải pháp biểu diễn quan liêu hệ hợp thành như sau:

*
quan lại hệ kết nhập hợp thành


Quan hệ tổng quát tháo hoá

Tổng quát lác hoá và siêng biệt hoá là hai cách nhìn dưới/lên cùng trên/xuống về sự phân cấp những lớp, mô tả khả năng quản lý cấp độ phức tạp của hệ thống bằng bí quyết trừu tượng hoá các lớp.

Tổng quát mắng hoá là đi từ những lớp dưới lên sau đó hình thành lớp tổng quát tháo (lớp trên, lớp cha), tức là cây cấu trúc những lớp từ lá đến gốc.

Chuyên biệt hoá là quy trình ngược lại của tổng quát lác hoá, nó được cho phép tạo ra các lớp dưới (lớp con) khác nhau của lớp cha.

Trong UML, tổng quát tháo hoá đó là quan hệ kế thừa giữa hai lớp. Nó cho phép lớp bé (lớp dưới, lớp kế thừa, xuất xắc lớp dẫn xuất) kế thừa trực tiếp những thuộc tính và những hàm thuộc loại công khai, xuất xắc được bảo vệ (protected) của lớp cha (lớp cơ sở, lớp trên). Trong quan tiền hệ tổng quát tháo hoá gồm hai loại lớp: lớp cụ thể và lớp trừu tượng.

Lớp cụ thể là lớp có những đại diện, các thể hiện cụ thể. Ngược lại, lớp trừu tượng là lớp không có thể hiện (đối tượng) cụ thể vào hệ thống thực. Những lớp bé cháu của lớp trừu tượng có thể là lớp trừu tượng, tuy nhiên trong cấu trúc phân cấp theo quan lại hệ tổng quát mắng hoá thì mọi nhánh phải kết thúc bằng các lớp cụ thể (lá của cây các lớp). Ta bao gồm thể định nghĩa những hàm trừu tượng cho những lớp trừu tượng, đó là những hàm chưa được mua đặt nội dung thực hiện vào lớp bọn chúng được khai báo. Những hàm trừu tượng này sẽ được download đặt trong các lớp bé cháu sau đó ở những lớp cụ thể.


Lớp NhanVien bao gồm ký hiệu abstract sau hoặc dưới tên lớp là lớp trừu tượng, và do vậy nó không có đối tượng cụ thể. Hai lớp con: lớp NguoiBanHang cùng lớp CongNhan là nhị lớp cụ thể. Nhị lớp này còn có những thuộc tính, thao tác làm việc giống lớp NhanVien như có những thuộc tính: hoTen, diaChi và có các hàm tinhLuong(), hienThi(), bên cạnh đó mỗi lớp còn có thể bổ sung thêm một số thuộc tính, thao tác để đặc tả mang lại từng đội đối tượng cụ thể. Lớp NguoiBanHang được bổ sung thêm thuộc tính soluongBanDuoc còn lớp CongNhan được bổ sung thuộc tính soLuongSanPham sản xuất được. Cấu trúc phân cấp của lớp NhanVien được xác định như hình 11.

*
Lớp trừu tượng cùng cụ thể trong quan hệ tổng quát tháo hóa


quan liêu hệ tổng quát với kết hợp là nhị quan hệ liên quan đến nhì lớp, nhưng chúng tất cả những điểm không giống nhau. Quan lại hệ kết hợp mô tả mối liên kết giữa hai hoặc nhiều hơn đối tượng còn quan lại hệ tổng quan mô tả những phương diện khác biệt của thuộc một thể hiện. Trong giai đoạn phân tích, những quan hệ kết hợp là quan tiền trọng hơn quan lại hệ tổng quát mắng hoá. Kết hợp bổ sung thêm những thông tin cho những lớp. Ngược lại, tổng quát mắng hoá là loại bỏ những tin tức bị phân tách sẻ ở các lớp nhỏ cháu vì chưng chúng được kế thừa từ lớp cha. Trong giai đoạn thiết kế thì tổng quát hoá lại quan liêu trọng hơn. Người vạc triển hệ thống thân yêu để phạt hiện ra những cấu trúc dữ liệu ở khâu phân tích với phát hiện ra các hành vi ở khâu thiết kế. Tổng quát hoá cung cấp cơ chế sử dụng lại để thể hiện chính xác các hành vi cùng mã hoá của các thư viện của những lớp. Quan hệ kết nhập cùng tổng quát mắng cũng khác nhau. Cả nhì đều có tác dụng xuất hiện cấu trúc cây trải qua bao đóng bắc cầu của quan lại hệ cơ sở, nhưng quan hệ tổng quát lác là mối quan tiền hệ “hoặc” (OR) còn quan hệ kết nhập là mối quan lại hệ “và” (AND). Hình 11 tế bào tả sự khác nhau của quan lại hệ tổng quát tháo hoá cùng kết nhập.
Kế thừa bội

Kế thừa bội cho phép một lớp được kế thừa những thuộc tính, các thao tác làm việc và những quan hệ kết hợp từ nhiều lớp cơ sở. Trong quan tiền hệ kế thừa bội có thể dẫn đến sự pha trộn tin tức từ nhiều nguồn dữ liệu khác nhau từ các lớp được kế thừa. Quan tiền hệ kế thừa đơn, một lớp được kế thừa từ một lớp cơ sở, thường tạo ra cấu trúc cây, còn kế thừa bội lại tổ chức những lớp thành đồ thị định hướng phi chu trình. Kế thừa bội là cơ chế mạnh trong quy mô hệ thống, nhưng đồng thời cũng sẽ tạo ra nhiều sự phức tạp về tính nhập nhằng, không nhất quán dữ liệu <24, 26>.

Kế thừa bội từ những lớp phân biệt

Một lớp bao gồm thể kế thừa từ nhiều lớp cơ sở không giống nhau.


Lớp Nguoi là cơ sở để tạo ra hai lớp con: HDQuanTri (những người vào hội đồng quản trị) với KinhDoanh (những người gớm doanh). Từ những lớp trên lại xây dựng nhữ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 vào công ty) với 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ó những người vừa là cổ đông, vừa là nhân viên. Những người đó đó là các đối tượng của lớp NhanVienCoDong kế thừa từ hai lớp bé CoDong với NhanVienCongTy .

*
Kế thừa bội từ nhì lớp khác nhau và có lớp cơ sở chung


Kế thừa bội không có lớp cơ sở bình thường

Kế thừa bội như trên là kế thừa gồm lớp cơ sở phổ biến (lớp Nguoi). Bọn họ có thể tạo ra lớp kế thừa bội từ nhiều lớp mà chúng lại không tồn tại lớp cơ sở chung. Loại kế thừa này thường xuất hiện khi ta muốn trộn trộn một số chức năng của các lớp thư viện không giống nhau.


Chúng ta hãy xét quy mô của chương trình đánh cờ. Trước lúc đi một nước cờ, chương trình phải nghiên cứu vị trí của các quân cờ và những nước đi tiếp theo sao để cho nước đi đó là bao gồm thể dẫn đến chiến thắng nhanh nhất. Trong hình 2-13 (b), mỗi đối tượng của lớp SearchTree (cây tìm kiếm) có thể là đối tượng của lớp MoveSubtree (cây con các nước đi) hoặc của lớp PossibleMove (lớp những nước bao gồm thể chọn). Bản thân lớp MoveSubtree lại tất cả thể chứa các SearchTree nhỏ hơn. Mỗi nước đi của lớp Move lại gồm thể là nước đi có thể (PossibleMove) hoặc lớp các nước đi hiện thời (ActualMove). Lớp PossibleMove kế thừa hành vi bình thường của lớp Move và lớp SearchTree.

*
Kế thừa bội không có lớp cơ sở chung


Quan hệ phụ thuộc

Sự phụ thuộc là một loại quan lại hệ liên kết giữa nhị phần tử trong tế bào hình, trong đó thể hiện sự cố kỉnh đổi trong một phần tử sẽ kéo theo sự núm đổi của phần tử kia. Quan lại hệ kết hợp thường là quan lại hệ hai chiều, nhưng quan hệ phụ thuộc lại thường là quan tiền hệ một chiều, thể hiện một 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 một đối tượng của lớp B như là tham số vào các làm việc (lời gọi hàm), vào các làm việc của lớp A có truy nhập tới những đối tượng của lớp B, khi thực hiện một thao tác nào đó trong lớp A lại phải tham chiếu tới miền xác định của lớp B. Lớp A sử dụng những giao diện của lớp B.

Tương tự, hai gói tất cả thể phụ thuộc sát vào nhau khi tất cả một lớp ở một gói phụ thuộc vào lớp của gói kia.

Trong UML, quan liêu hệ phụ thuộc được thể hiện bằng mũi thương hiệu đứt nét.


Hình 2-18 tế bào tả quan hệ phụ thuộc giữa hai lớp với phụ thuộc của hai gói.

Xem thêm: Nghỉ Việc Ra Kinh Doanh - Có Nên Nghỉ Việc Để Khởi Nghiệp Hay Không

*
quan liêu hệ phụ thuộc giữa các lớp và các gói


Quan hệ hiện thực hoá

Quan hệ hiện thực hoá thể hiện sự kết nối giữa những lớp cùng giao diện. Quan tiền hệ này thường được sử dụng với những giao diện và những lớp làm nhiệm vụ cài đặt đặt các dịch vụ (phương thức) đã được khai báo trong những giao diện. Quan hệ hiện thực hoá được cam kết hiệu là mũi tên đứt nét như hình 2-19.