Tôi không biết cách thực hiện điều này trong công cụ lựa chọn của bạn, nhưng ở cấp mô hình, nó hoạt động chính xác như đối với các lớp học. Bạn tạo một thao tác mẫu với chữ ký của bạn.
Chương 17.4.14 của UML2 superstructure định này cho ký hiệu:
Các thông số mẫu và mẫu tham số ràng buộc của một mẫu hoạt động là hai danh sách ở giữa tên của hoạt động và các thông số của hoạt động .
* < tầm nhìn> < name> '<' < mẫu tham số-list> '>' '< <' < ràng buộc thể hiện-list> '>>' '(' < parameter> [ '' < tham số >] ** ')' [ ':' < bất động sản-string>]
trong trường hợp của bạn, trước tiên hãy xem các trường hợp đơn giản của
public <T> boolean bar(T x, T y)
này sẽ tương ứng với
+ thanh < T> (x: T, y: T): Boolean
dụ ban đầu của bạn có vẻ phức tạp hơn một chút vì các tham số mẫu bị hạn chế khác class, Comparable, đến lượt nó cũng là một khuôn mẫu có tham số (tôi sẽ gọi nó là T1) được liên kết với tham số của hoạt động lần lượt. Điều này cho phép chúng tôi
+ thanh < T> tương đương < T1-> T >> (x: T, y: T): Boolean
Lưu ý: (Một chút rambling sâu phía trước) Các mẫu được chỉ định bởi UML (và ở một mức độ nào đó C++) là một con thú rất khác với Generics trong Java. Họ có vẻ ít nhiều giống nhau, nhưng đôi khi có những sự khác biệt tinh tế trong ngữ nghĩa của họ khiến họ khó có thể kết hợp cả hai.Điều quan trọng nhất trong UML là:
Mẫu không thể được sử dụng theo cách tương tự như phần tử không phải mẫu cùng loại. Phần tử mẫu có thể chỉ được sử dụng để tạo các phần tử bị ràng buộc (ví dụ: một lớp mẫu không thể được sử dụng làm loại phần tử đã nhập) hoặc như một phần của đặc tả của mẫu khác (ví dụ: một lớp mẫu có thể chuyên lớp mẫu khác).
Điều này có nghĩa là trong UML, OtherFoo cũng cần phải là mẫu - tức là có chữ ký mẫu (có 0 tham số). Để sau đó sử dụng mẫu hoạt động chính xác bên ngoài phạm vi mẫu - tức là gọi nó trong một hoạt động hoặc tương tự - trước tiên bạn phải liên kết nó với một hoạt động cụ thể, được sử dụng thay thế. Trong trường hợp ví dụ của bạn, điều này có nghĩa là:
- Ràng buộc mẫu OtherFoo khác vào lớp bị ràng buộc (ẩn danh).
- Mẫu hoạt động thanh liên kết đến một thao tác trong lớp bị ràng buộc.
+1, Câu hỏi hay !!!!! – NINCOMPOOP