BÀI 5:
TÌM HIỂU SÂU VỀ SỰ TẬP HỢP (AGGREGATION), SỰ CẤU
THÀNH (COMPOSITE), GIAO DIỆN (INTERFACE) VÀ SỰ HIỆN
THỰC (REALIZATION)
Trong bài này, chúng ta tiếp tục với các mối quan hệ giữa các class và tìm hiểu thêm các
khái niệm mới về các class và các sơ đồ lớp (class diagram). Nội dung chính trong bài học:
+ Sự tập hợp (aggregation)
+ Sự cấu thành (composite)
+ Ngữ cảnh (context)
+ Giao diện (interface)
+ Sự hiện thực (realization)
+ Tính rõ ràng (visibility)
Sự tập hợp (aggregation):
Thuật ngữ: Đôi khi một class bao gồm một số class thành phần (component class). Đây là
loại đặc biệt của mối quan hệ được gọi là sự tập hợp (aggregation). Quan hệ giữa các thành
phần với class mà chúng tập hợp nên là một quan hệ bộ phận-tổng thể (part-whole). Trong
bài 2, chúng ta đã thấy rằng hệ thống máy tính cá nhân gia đình là một tập hợp gồm CPU
box, keyboard, mouse, monitor, CD-ROM drive, hard disk, floppy disk drive, modem,
printer và speaker.
Ta biểu diễn một sự tập hợp như một phân cấp với class “whole” ở đỉnh và các thành phần
phía dưới. Một đường liên kết tổng thể (whole) với các thành phần (component) với một
hình thoi gần đầu “whole”. Hình 5.1 cho thấy hệ thống máy tính như một sự tập hợp.
Hình 5.1
Một aggregation (part-
whole) được biểu diễn
bởi một đường liên kết
giữa tổng thể với các bộ
phận.
Ngữ cảnh (context)
Khi ta mô hình hóa một hệ thống, nhóm các class sẽ trộn với nhau thường dưới dạng
aggregation hoặc composite. Chúng ta sẽ chỉ tập trung vào một nhóm này hay nhóm kia, và
sơ đồ ngữ cảnh (context diagram) cung cấp tính năng mô hình hóa điều đó. Một context
diagram giống như một bản đồ chi tiết của một vùng từ một bản đồ lớn hơn.
Trang 2 – Bài 5
Hình 5.4
Một sơ đồ ngữ cảnh
composite biểu diễn các
thành phần của một
class như một diagram
lồng bên trong một hình
chữ nhật class lớn.
Context diagram của composite tập trung vào áo sơ-mi và các thành phần bên trong của nó.
Để thấy áo sơ-mi trong ngữ cảnh của tủ áo quần, ta phải mở rộng tầm vực. Một context
diagram cho hệ thống cho phép điều này. Ta có thể thấy class Shirt kết nối như thế nào với
các class Wardrobe và Outfit.
Hình 5.5
Một context diagram
của hệ thống cho thấy
các thành phần của một
class và quan hệ của nó
với các class khác trong
hệ thống.
và chỉ vào interface.
Một cách khác để biểu diễn một class và một interface là một hình tròn nhỏ kết nối với class
bởi một đường thẳng.
Hình 5.7
Cách ngắn gọn để biểu
diễn một việc một class
hiện thực hóa một
interface.
Tính rõ ràng (visibility):
Thuật ngữ: Liên quan chặt chẽ đến interface và realization là khái niệm tính rõ ràng
(visibility). Visibility ápdụng cho các attribute và operation (hoặc operation của một
interface). Có 3 cấp độ cho visibility. Ở cấp public, khả năng sử dụng được mở rộng cho các
class khác. Ở cấp protected, khả năng sử dụng chỉ được mở rộng cho các class thừa kế từ
class nguồn. Ở cấp private, chỉ class nguồn mới có thể dùng các attribute và operation của
nó.Ví dụ, trong một TV, changeVolume() và changeChannel() là các public operation,
paintImageOnScreen() là một private operation. Trong một xe gắn máy, accelerate() và
brake() là các public operation, trong khi updateMileageCount() là protected operation. Trang 4 – Bài 5
Hình 5.8
Các public operation,
private operation trong
một TV và các public
operation, protected
operation trong một xe
gắn máy.
Tầm vực (Scope)
protected (khả năng sử dụng được mở rộng đến các class con của class sở hữu các attribute
Trang 5 – Bài 5
và operation) và private (các attribute và operation chỉ được dùng bởi class sở hữu chúng).
Một dấu “+” ký hiệu cho public, “#” ký hiệu cho protected và “-“ ký hiệu cho private.
Tầm vực (scope) là một khía cạnh khác của attribute và operation. Trong tầm vực instance
(instance-scoping), một giá trị tồn tại cho một attribute hoặc operation cụ thể đối với tất cả
các object trong một class.
Câu hỏi
1. Sự khác nhau giữa một aggregation và một composite?
2. Realization là gì?
3. Tên của ba cấp độ của visibility và mô tả ý nghĩa của chúng.
Trang 6 – Bài 5