从泛型到泛X

0 views
Skip to first unread message

zhang3

unread,
May 5, 2009, 3:55:32 PM5/5/09
to Zero programming language
在主流的程序开发语言中引入泛型,不得不说是一个巨大的进步,关于泛型的思想,实现方法,也有很多文章介绍,不再重复,这里结合我所要说的内容谈一下自
己的理解。

还是回到那句话,符合人类思维的特性。因为要符合人类思维的特性,所以泛型产生了,泛型有用了,是程序员们说,我们要有泛型,而不是有人先用高深的思
想鼓捣出来一个泛型然后说你们用吧,这是最先进的东西。

拿最常用的列表来说,具有列表结构的东西非常多,有各种类型的数组,字符串列表,对象列表,等等,我们可以看到这些列表结构的共同之处,但并没有在定义
中体现出来,我们要用不同的方法去初始化这些东西。您在进行分析的时候往往会说,这些信息用一个列表来处理,说这种话的时候,您压根就没考虑这个列表的
具体实现,是用数组,用字符串,还是用链表。如果您有个尽职尽责的电脑秘书要把这句话,这个概念用程序语言表达出来,就不得不用到泛型,于是,泛型就必
须产生了。

您接着说到处理,把这个列表每个元素都用另外一个方法处理一遍,说这话的时候,不仅列表里面装的啥还没搞清,遍历的过程,处理的方法,啥都不知道。但为
啥人可以这么说,因为我们很泛,我们常说这个东西那个东西,这样搞那样搞,其实只是有一个大概的轮廓,所以我们不得不要求程序语言也跟着泛起来,否则我
们必须先假装这个东西是数组,那个东西是链表,假装到后面往往情况有变,假装不下去了,然后不得不对程序东改西改。

人为什么要这么泛呢,我们不能向机器学习严谨的思维方式吗?为什么在把信息装入一个数据结构中的时候,不能确定它具体的实现方式呢?这样做是有好处的,
因为我们还不知道未来将要对这些信息做何种处理,而不同的处理必须对应不同的数据结构。人类思考问题的顺序,本来就是层次递进,多次迭代的,先确定某些
东西,在确定性的基础上做后续的设计,通过后续的设计得到更多的确定性,再以这些确定性为基础,进一步确定设计的各种细节。离开了这种过程,我们的思维
就会迷路,茫然不知所从。

我这里要说的是,程序的世界中还有大量需要泛的东西,我称之为泛X,一切以人为本,以人的思维特点为参照,在程序世界中找到与之相对应的各种结构或者叫
模式。这样才能提高软件的生产力,不再在一些繁琐的力不从心的细节上疲于奔命。

Reply all
Reply to author
Forward
0 new messages