李颖:
泛型编程就是,与具体的数据类型无关,面向抽象的运算的一种编程
[阅读: 932] 2004-10-10 08:59:09
比如,一个排序算法,需要用到比较运算
把这个比较运算抽象出来之后,这个排序算法就可以完成了
然后,只要是支持比较运算的数据类型,都可以适用于这个排序算法
这样的好处是,一个面向泛型编写出来的算法,可以适用于一切支持这些运算的数据类型
一个排序算法,可以适用于整数、浮点数、字符串、甚至是支持比较运算的对象
泛型编程的典型例子是C++的STL(Standard Template Library)
C++支持模板和运算符重载,因此支持泛型编程比较方便
Delphi/Java一般是用接口来实现,但是总的思路是一致的
比如上面的排序问题,在Java中,需要在类中实现Comparable接口
然后,在java.util.Arrays类中提供了一个静态方法
public static void sort(Object[] a)
Sorts the specified array of objects into ascending order, according to the natural ordering of its elements. All elements in the array must implement the Comparable interface.
因为语言本身的差异,使得泛型编程的实现方式有一些不同
但是总的思路是一样的