intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

BÀI 3: LÀM VIỆC VỚI HƯỚNG ĐỐI TƯỢNG

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

100
lượt xem
18
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chúng ta đã biết rằng 1 hình chữ nhật là biểu tượng dùng để biểu diễn 1 class trong UML. Tên của class, theo qui ước, là một từ với ký tự đầu viết hoa, xuất hiện phía trên của hình chữ nhật. Nếu tên class có 2 từ trở lên thì kết các từ sát với nhau với chữ hoa đầu từ (ví dụ WashingMachine trong hình 3.1). Hình 3.1 Biểu tượng class trong UML

Chủ đề:
Lưu

Nội dung Text: BÀI 3: LÀM VIỆC VỚI HƯỚNG ĐỐI TƯỢNG

  1. BÀI 3: LÀM VIỆC VỚI HƯỚNG ĐỐI TƯỢNG Nội dung chính trong bài học: + Trực quan hóa một lớp (class) + Các thuộc tính (attribute) + Các hành vi (operation) + Các đáp ứng (responsibility) và ràng buộc (constraint) Trực quan hóa một lớp (class): Chúng ta đã biết rằng 1 hình chữ nhật là biểu tượng dùng để biểu diễn 1 class trong UML. Tên của class, theo qui ước, là một từ với ký tự đầu viết hoa, xuất hiện phía trên của hình chữ nhật. Nếu tên class có 2 từ trở lên thì kết các từ sát với nhau với chữ hoa đầu từ (ví dụ WashingMachine trong hình 3.1). Hình 3.1 Biểu tượng class trong UML Một cấu trúc UML khác, gọi là gói (package), có thể đóng vai trò trong tên của một class. Như đã giới thiệu trong các bài trước, một package, được biểu diễn như một tabbed folder, là cách của UML nhằm tổ chức các thành phần của diagram. Xem biểu tượng package trong hình 3.2. Hình 3.2 Ví dụ package UML Thuật ngữ: Nếu lớp WashingMachine là thành phần của một package có tên là Household appliances, ta có thể đặt tên cho class là Household appliances::WashingMachine. 2 dấu hai chấm tách rời tên package bên trái với tên class bên phải. Loại tên class này gọi là một tên đường dẫn (pathname). Xem hình 3.3 Hình 3.3 Một class với một pathname Trang 1 – Bài 3
  2. Các thuộc tính (attribute): Thuật ngữ: Một thuộc tính (attribute) là một đặc tính của một class. Nó mô tả vùng giá trị mà tính chất trong các object (instance) của class có thể nắm giữ. Một class có thể không có hoặc có nhiều thuộc tính.Theo qui ước, tên thuộc tính viết liền với chữ thường. Nếu tên thuộc tính gồm nhiều từ thì các từ kết liền với nhau và mỗi từ bắt đầu bằng chữ hoa. Danh sách các tên thuộc tính bên dưới tên class, xem hình 3.4. Hình 3.4 Một class với các thuộc tính Mỗi object của class có một giá trị cụ thể cho từng thuộc tính. Hình 3.5 biểu diễn một ví dụ. Chú ý rằng tên object bắt đầu bằng chữ thường, kế tiếp là 1 dấu hai chấm, kế tiếp là tên class và toàn bộ tên được gạch dưới. Chú ý: Tên myWasher:WashingMachine là một thể hiện có thên (named instance). Ngoài ra còn có thể hiện vô danh (anonymous instance) như :WashingMachine. Hình 3.5 Một object có một giá trị cụ thể cho mỗi thuộc tính của class chứa nó. UML cho phép đưa vào các thông tin bổ sung cho các thuộc tính. Trong biểu tượng class, ta có thể đặc tả một kiểu dữ liệu cho từng giá trị của thuộc tính. Những kiểu dữ liệu có thể là string, floating-point number, integer và boolean. Để mô tả kiểu, dùng một dấu : ngăn cách giữa tên thuộc tính với tên kiểu. Ngoài ra, có thể chỉ ra giá trị mặc định (default value) cho một thuộc tính. Hình 3.6 chỉ ra các cách đặc tả thuộc tính. Hình 3.6 Một thuộc tính có thể cho biết kiểu của nó cũng như giá trị mặc định. Trang 2 – Bài 3
  3. Các hành vi (operation): Thuật ngữ: Một hành vi (operation) là cái mà một class có thể tự làm được hoặc chúng ta (hoặc class khác) có thể làm cho class đó. Giống như tên thuộc tính, một tên hành vi cũng chỉ toàn chữ thường khi nó có 1 từ. Nếu tên hành vi gồm 2 từ trở lên thì mỗi từ bắt đầu bằng chữ hoa rồi kết liền với nhau. Danh sách các operation nằm bên dưới danh sách các attribute. Hình 3.7 Danh sách các hành vi của class xuất hiện bên dưới đường ngăn cách với các thuộc tính của class. Thuật ngữ: Ta cũng có thể chỉ ra thông tin bổ sung cho các hành vi. Trong các dấu ngoặc theo sau tên hành vi, ta có thể biểu diễn các tham số được xử lý bởi hành vi và cùng với đó là kiểu dữ liệu của chúng. Một loại hành vi là hàm (function), trả về một giá trị sau khi hành vi kết thúc thực hiện. Đối với một function, ta có thể cho biết giá trị trả về và kiểu của giá trị đó. Thuật ngữ: Các thông tin về một operation được gọi là dấu hiệu (signature) của hành vi. Hình 3.8 cho thấy cách biểu diễn signature. Hình 3.8 Dấu hiệu (signature) cho một operation. Các thuộc tính, hành vi và sự trực quan hóa: Chúng ta làm việc với các class trong sự tách rời và biểu diễn tất cả các thuộc tính, hành vi của một class. Trong thực tế, chúng ta sẽ biểu diễn nhiều class cùng lúc. Khi đó, không phải lúc nào cũng thuận tiện trong việc hiển thị tất cả các thuộc tính và hành vi vì như thế có thể làm diagram thêm rối. Thay vào đó, ta có thể chỉ hiển thị tên class mà bỏ trống vùng attribute hoặc operation, như hình 3.9. Trang 3 – Bài 3
  4. Hình 3.9 Trong thực tế, ta không phải luôn luôn biểu diễn tất cả các thuộc tính và hành vi của một class. Thuật ngữ: Đôi lúc cần biểu diễn một vài (không phải tất cả) attribute và operation. Để làm điều này, ta hiển thị những gì cần thiết rồi theo sau danh sách là dấu ba chấm. Điều này được gọi là sự tĩnh lược (ellipsis) và việc bỏ qua một vài attribute hoặc operation được gọi là tĩnh lược một class. Hình 3.10 cho thấy cách sử dụng một tĩnh lược. Hình 3.10 Một tĩnh lược cho thấy các operation không phải là tập đầy đủ. Nếu danh sách các attribute và operation quá dài, ta có thể dùng một stereotype để tổ chức cho danh sách cô đọng hơn. Một stereotype là cách của UML cho phép ta mở rộng nó: cho phép ta tạo các thành phần mới riêng biệt cho vấn đề cụ thể đang cần giải quyết. Như đã đề cập trong các bài trước, ta biểu diễn stereotype như một tên gọi trong cặp ngoặc nhọn gọi là guillemet. Đối với một danh sách thuộc tính, ta có thể dùng một stereotype như tiêu đề cho một tập thuộc tính con. Hình 3.11 Sử dụng một stereotype để tổ chức một danh sách các attribute và operation. Chú ý: Stereotype là một cấu trúc mềm dẻo. Ta co 1thể dùng nó theo nhiều cách khác nhau. Ví dụ, có thể dùng nó phía trên tên của một class trong biểu tượng class để chỉ ra vai trò mà class đó đang nắm giữ. Trang 4 – Bài 3
  5. Các đáp ứng (responsibility) và ràng buộc (constraint): Thuật ngữ: Biểu tượng class còn cho phép đặc tả một loại thông tin khác về một class. Bên dưới danh sách operation, ta có thể trình bày các đáp ứng (responsibility) của class. Responsibility là một mô tả cho cái mà class phải làm – có nghĩa là các attribute và operation nào của class sẽ thực hiện. Ví dụ, một washing machine có responsibility là lấy áo quần dơ vào và xuất ra áo quần sạch. Trong biểu tượng class, ta trình bày các responsibility bên dưới danh sách các operation (xem hình 3.12). Hình 3.12 Trong một biểu tượng class, viết các responsibility của class trong một vùng dưới danh sách các operation. Thuật ngữ: Để thêm một ràng buộc (constraint), dùng dấu ngoặc móc bao lấy nội dung ràng buộc. Nội dung ràng buộc trong ngoặc đặc tả các luật mà class phải tuân thủ. Ví dụ, trong lớp WashingMachine, ta muốn đặc tả rằng sức chứa của một máy giặt chỉ có thể là 16, 18 hoặc 24 pound (có nghĩa ràng buộc trên thuộc tính capacity của lớp WashingMachine), ta viết {capacity=16 or 18 or 24 lb) gần với biểu tượng lớp WashingMachine. Hình 3.13 Luật trong ngoặc móc ràng buộc thuộc tính capacity với 1 trong 3 giá trị có thể. Ghi chú (note): Ngoài attribute, operation, responsibility và constraint, ta còn có thể thêm thông tin vào một class dưới dạng ghi chú (note) đính kèm class. Ta thường thêm một note cho một attribute hay operation. Hình 3.14 biểu diễn một note cho biết cách thức sinh số serial number cho các object trong lớp WashingMachine. Trang 5 – Bài 3
  6. Hình 3.14 Ghi chú đính kèm cung cấp thêm thông tin về class. Tóm lược Hình chữ nhật là biểu tương UML để mô tả một class. Name, attribute, operation và responsibility của class được chia vào các vùng trong hình chữ nhật.Ta có thể dùng stereotype để tổ chức danh sách các attribute và operation. Ta có thể tĩnh lược một class bằng cách biểu diễn tập con của các attribute và operation. Điều này làm cho 1 class diagram ít phức tạp. Ta có thể biểu diễn kiểu dữ liệu và giá trị khởi động cho attribute. Ngoài ra còn có thể biểu diễn những giá trị được xử lý bởi một operation cũng như kiểu dữ liệu của chúng. Đối với một operation, những thông tin bổ sung này được gọi là dấu hiệu (signature). Nhằm giảm sự nhập nhằng trong một định nghĩa class, ta có thể thêm các ràng buộc. UML cho phép mô tả thêm về một class bằng cách đính kèm các chú thích (note) vào hình chữ nhật biểu diễn cho class. Câu hỏi: 1. Cách trình bày một class bằng UML? 2. Các thông tin có thể biểu trên một biểu tượng class? 3. Ràng buộc là gì? 4. Tại sao cần đính kèm ghi chú vào một biểu tượng class? 5. Khi nào chúng ta cần biểu diễn một signature cho một opeartion? Bài tập: 1. Mô tả ngắn cho môn hockey: Trang 6 – Bài 3
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2