知识卡片

模板参数化类

普通读书笔记卡 · 1944.p

内容

一些语言(最著名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的子类型……但是,使用派生和子类型化有不同之处,它不允许给绑定元素添加特性。