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ố hoá, lớp hiện thực, lớp tiện ích, và lớp metaclass (siêu lớp).
Lớp tham số hoá (Parameterized Class)
Lớp tham số hoá 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ố hoá chính là lớp mẫu (template). Trong UML, có thể khai báo lớp tham số hoá (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ố hoá Set
insert(T e) remove(T e)
Lớp tham số hoá 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ố hoá í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 toà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ố hoá mà đối số của nó là một kiểu trị cụ thể. Như
vậy, lớp tham số hoá 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 hoá
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 ngoà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ố hoá chính là một loại siêu lớp.
Set <Complex> insert(Complex e) remove(Complex e)