知识卡片
模板参数化类
内容
一些语言(最著名C++,Java和C#后来也引入)支持参数化类,也叫模板:先定义带类型参数占位符(T)的通用模板(Set),再用具体类型派生,得到Set这样的类。UML用«bind»标注派生关系,意味着派生类遵从模板接口,可当作模板子类型。与普通子类型化不同,派生不允许给绑定元素添加新特性;需要加特性须另外创建真正的子类型。
参考来源
- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第5章《类图:进阶概念》(源文件:_epub-src/EPUB/4.xhtml)
- 结论依据:原文说明"参数化类的使用,例如Set<Employee>,称为派生(derivation)……«bind»关键词是精化关系上的一个构造型。这个关系指明EmployeeSet会遵从Set接口。你可以认为EmployeeSet是Set的子类型",并指出"使用派生和子类型化有不同之处,它不允许给绑定元素添加特性"。
- 原始内容:参数化类的使用,例如Set<Employee>,称为派生(derivation)……«bind»关键词是精化关系上的一个构造型。这个关系指明EmployeeSet会遵从Set接口。你可以认为EmployeeSet是Set的子类型……但是,使用派生和子类型化有不同之处,它不允许给绑定元素添加特性。