4.4 Biểu đồ lớp
4.4.1 Các loại lớp trong biểu đồ
Biểu đồ lớp cĩ thể chứa nhiều loại lớp khác nhau, chúng cĩ thể là những lớp thơng thường, lớp tham số hố, lớp hiện thực, lớp tiện ích, và lớp metaclass (siêu lớp).
Lớp tham số hố (Parameterized Class)
Lớp tham số hố là lớp được sử dụng để tạo ra một họ các lớp khác. Trong những ngơn ngữ lập trình cĩ kiểu mạnh như C++, lớp tham số hố chính là lớp mẫu (template). Trong UML, cĩ thể khai báo lớp tham số hố (lớp mẫu) Set cho họ các lớp cĩ các phần tử là kiểu T bất kỳ, được xem như là tham số như sau:
Hình 4-6 Lớp được tham số hố
Lớp tham số hố cĩ thể sử dụng để thể hiện quyết định thiết kế về các giao thức trao đổi giữa các lớp. Lớp tham số hố ít được sử dụng trong mơ hình khái niệm mà chủ yếu được sử dụng trong các mơ hình cài đặt, nhưng cũng chỉ khi ngơn ngữ lập trình được chọn để lập trình cĩ hỗ trợ cơ chế lớp mẫu (template class) như C++ chẳng hạn. Cũng cần lưu ý là khơng phải tất cả các ngơn ngữ lập trình hướng đối tượng đều hỗ trợ kiểu lớp mẫu, ví dụ Java khơng hỗ trợ, nhưng tất cả các lớp trong Java lại tạo ra cấu trúc cây phân cấp cĩ gốc là lớp Object. Do tính chất phân cấp của cây và nguyên lý chung bảo tồn mối quan hệ giữa các lớp con với lớp cha (nguyên lý thành viên và nguyên lý 100%) mà ta vẫn cĩ thể tạo ra được những cấu trúc tổng quát, khơng thuần nhất tương tự như lớp mẫu [15].
Lớp hiện thực (Instantiated Class)
Lớp hiện thực là loại lớp tham số hố mà đối số của nĩ là một kiểu trị cụ thể. Như
vậy, lớp tham số hố là khuơn để tạo ra các lớp hiện thực. Ví dụ, lớp Set<Complex> tập các số phức (Complex) là lớp hiện thực được biểu diễn trong UML như hình 4-7.
Hình 4-7 Lớp hiện thực hố Set insert(T e) remove(T e) T Set <Complex> insert(Complex e) remove(Complex e)
Lớp tiện ích (Class Utility)
Lớp tiện ích là tập hợp các thao tác được sử dụng nhiều nơi trong hệ thống, chúng
được tổ chức thành lớp tiện ích để các lớp khác cĩ thể cùng sử dụng. Trong biểu đồ, lớp tiện ích được thể hiện bằng lớp cĩ đường viền bĩng như hình 4-8 (a).
Hình 4-8 (a) Lớp tiện ích (b) Giao diện
Giao diện (Interface)
Giao diện là tập những thao tác quan sát được từ bên ngồi của một lớp và/hoặc một thành phần, và khơng cĩ nội dung cài đặt của riêng lớp đĩ. Giao diện thuộc quan sát logic và cĩ thể xuất hiện trong cả biểu đồ lớp và biểu đồ thành phần với ký hiệu đồ hoạ như hình 4-8 (b).
MetaClass (siêu lớp)
MetaClass là lớp để tạo ra các lớp khác, nghĩa là thể hiện của nĩ là lớp chứ khơng
phải là đối tượng. Lớp tham số hố chính là một loại siêu lớp.