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)

Chia sẻ: Luongnguyenviet Cuong | Ngày: | Loại File: PDF | Số trang:6

0
142
lượt xem
24
download

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)

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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)....

Chủ đề:
Lưu

Nội dung Text: 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)

  1. 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. Trang 1 – Bài 5
  2. Mặc dù ví dụ này cho thấy mỗi component chỉ thuộc một whole, nhưng trong một aggregation không bắt buộc như thế. Ví dụ, trong một hệ thống giải trí tại gia, một điều khiển từ xa (remote control) có thể là 1 component của 1 TV và đồng thời là 1 component của một VCR. Ràng buộc trên các mối kết hợp: Một tập hợp các thành phần trong một aggregation có thể “rơi” vào mối quan hệ OR. Ví dụ, trong một số nhà hàng, một bữa ăn (meal) bao gồm soup hoặc salad, main course và dessert. Để mô hình hoá điều này, ta dùng một ràng buộc OR như hình 5.2. Hình 5.2 Ta có thể đặt một ràng buộc trên một aggregation để cho thấy rằng một thành phần này hoặc thành phần khác là bộ phận của tổng thể. Các cấu thành (composite): Một cấu thành (composite) là một loại aggregation chặt chẽ hơn. Mỗi thành phần trong một composite chỉ có thể thuộc một tổng thể mà thôi. Các thành phần của một bàn cà phê (coffee table) - mặt bàn và các chân bàn - tạo nên một composite. Biểu tượng cho composite tương tự như cho aggregation, ngoại trừ hình thoi màu đen. Hình 5.3 Trong một composite, mỗi thành phần thuộc về duy nhất một tổng thể (whole). 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
  3. 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. Giao diện và hiện thực (Interface and Realization) Sau khi tạo ra một số class, ta có thể thấy rằng chúng không cùng liên quan đến một class cha cụ thể, nhưng các hành vi của chúng có thể chứa một số operation giống nhau với dấu hiệu giống nhau. Khi đó, ta có thể mã hóa các operation cho một trong số các class đó rồi dùng lại chúng trong các class còn lại. Một khả năng khác là ta xây dựng một tập các operation cho các class trong một hệ thống, và tái sử dụng chúng cho các class trong hệ thống khác. Thuật ngữ: Với cả hai cách trên, ta sẽ cần có cách nào đó để nắm bắt tập các operation có thể tái sử dụng đó. Giao diện (interface) là một cấu trúc của UML cho phép làm điều này. Một interface là một tập các operation mà đặc tả một số khía cạnh trong hành vi của một class, đó cũng chính là tập các operation mà một class muốn thể hiện cho các class khác. Trang 3 – Bài 5
  4. Thuật ngữ: Mối quan hệ giữa một class và một interface được gọi là hiện thực hóa (realization). Mối quan hệ náy được mô hình hóa như một đường đứt nét với một hình tam giác lớn kề và chỉ vào interface. Hình 5.6 Một interface là một tập hợp các operation mà một class thực hiện. Một class liên hệ với một interface thông qua realization, được biểu diễn bởi đường đứt nét có hình tam giác nằm kề 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
  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) Thuật ngữ: Tầm vực (scope) là một khái niệm khác liên quan đến attribute và operation. Có 2 loại tầm vực. Trong tầm vực instance, mỗi instance có giá trị riêng của nó cho attribute và operation. Trong tầm vực classifier, chỉ một giá trị của attribute và operation cho tất cả các instance của class. Một thuộc tính hay operation có tầm vực loại classifier xuất hiện với tên được gạch dưới. Loại tầm vực này thường được dùng khi một nhóm cụ thể các instance phải chia sẻ các giá trị đúng của một thuộc tính private. Loại tầm vực instance được dùng nhiều hơn. Tóm lược Để hiểu đầy đủ về các class cũng như quan hệ giữa chúng, cần phải biết một số mối quan hệ bổ sung. Sự tập hợp (aggregation) mô tả một mối kết hợp bộ phận - tổng thể (part – whole): một “whole class” được tạo nên từ các “component class”. Một component trong một aggregation có thể là bộ phận cho nhiều “whole class” khác nhau. Một cấu thành (composite) là một dạng tập hợp có tính chặt chẽ hơn, trong đó một component chỉ có thể là bộ phận của duy nhật 1 “whole class”. Biểu diễn UML cho aggregation tương tự như cho composite. Đường kết hợp liên kết các bộ phận với một tổng thể có một hình thoi kề với đầu “whole”. Trong aggregation, hình thoi rỗng, còn trong composite thì hình thoi đặc. Một context diagram tập trung sự chú ý vào một class cụ thể trong một hệ thống. Một context diagram cho một composite giống như một bàn đồ chi tiết của một bản đồ lớn hơn. Nó cho trình diễn một class diagram được lồng bên trong một biểu tượng hình chữ nhật lớn. Một context diagram cho hệ thống cho biết cách thức mà một context diagram cho composite quan hệ với các object khác trong hệ thống. Một sự hiện thực hóa (realization) là một mối kết hợp giữa một class và một interface, là một tập hợp các operation mà một số class có thể sử dụng. Một interface có thể được biểu diễn như một class không có attribute. Để phân biệt nó với một class có các thuộc tính nhưng đã được lược bỏ, dùng stereotype xuất hiện trên tên của interface với một tam giác kề và chỉ về phía interface. Cách khác để biểu diễn một realization là với một đường nối một class với một hình tròn nhỏ, với hình tròn tượng trưng cho interface. Trong thuật ngữ tính rõ ràng (visibility), tất cả các operation trong một interface là public, sao cho bất cứ class nào cũng có thể sử dụng chúng. Hai cấp độ khác cho tính rõ ràng là 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
  6. 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
Đồng bộ tài khoản