首先,了解一下Java关于泛型的概念。泛型,在C++中被称为模板,就是一种抽象的编程方式。当我们定义类和方法的时候,可以用一种通用的方式进行定义,而不必写出具体的类,这些未知的东西会在真正使用的时候在确定。
对于集合类来说,它们可以存放各种类型的元素。如果在存放之前,就能确定元素的类型,那么就可以更加直观,也让代码更加简洁。
我比较喜欢c++中的模版说法.
比较好理解.
泛型就是一个模版.用来"复印".
语言中泛型的设计用处不但是为了让你少写代码,同时在解决不同类型(这里是指值类型和引用类型)问题的时候减少了不必要的二次开销。
假设语言不设计模版概念,我们使用list,那么语言中解决这种问题不得不使用list->object类型,那么问题就来了如果是引用类型还好办,这个转换没什么开销,但是是值类型怎么办。我们再假设是list->A类型,B类型不是A派生的,那么B是无法使用list集合的。至于模版概念之后,又产生的约束等概念..自己可以慢慢想哪些问题无法解决或者很难解决~
总而言之,设计的模型(之后就是定义的概念)都是为解决一些问题而定义的,比如3d的模型设计,抛开摄像机的模型设计没有更好或者更合适的模型,由此大家都不得不使用这种概念,而二维绘制模型就相对变化要多些了,比如dc,cavas等等,但每种设计必定有某种设计的优势和劣势。