Sử dụng UML, làm cách nào tôi có thể đại diện cho A<Foo>
trong mã sau?Làm thế nào tôi có thể biểu diễn thừa kế từ tham số mẫu trong UML?
template< class T >
class A : public T
{
/* ... */
};
class Foo { };
A<Foo> a_foo;
Something như thế này (xin lỗi cho nghệ thuật ascii nghèo ... và Jon Skeet) là đoán đầu tiên của tôi, nhưng tôi nghi ngờ nó không phải là chính xác.
________________
| |
| |
| Foo |
| |
|______________|
/:\ /|\
«bind»(Foo) : |
: | .......
__:____|___: T :
| :.....:
| |
| A |
| |
|______________|
CRTP không mô tả một lớp kế thừa từ một lớp mẫu, trong đó người thừa kế tự vượt qua như tham số mẫu? Trong trường hợp này, liên kết tổng quát nên có hướng ngược lại. Sự phụ thuộc ràng buộc được hiển thị là IMHO chính xác. –
@ g-makulik - bạn đúng (như Luchiane đã chỉ ra bên dưới). Tôi đã sửa đổi tiêu đề. – PaulH
@Luc Touraille - tiêu đề hay. :) – PaulH