事实上我们在软件开发的过程中总是:遇到问题,解决问题,这么一个 简单的过程。处理一般类似问题的时候,我们经过抽象,有的提取算法,有的提取结构,有的提取流程等等,这样的过程可以简单理解为就是抽象。然而问题是多种多样的,我们不可能碰到的都是相同的问题,所以不可避免的我们会面临特殊情况,相对的就有新的算法,新的结构,新的流程。这就是特例化。
如果仅仅是一个简单的问题,那么一层的抽象大概够用了。问题总是复杂的,有的时候用这样的算法,有的时候用那样的算法,有的时候有不同的结构,有的时候又有不同的流程,不可避免,我们的聪明人又做了一次抽象,抽象处理这些问题的方法,这就是泛型、面向对象、设计模式。恩、实际上你明白了,哲学离我们一点儿也不远,我们都有成为哲学家的潜质。
下面我们开始新的胡思乱想:
1、老海的问题。 他nnd,编程语言越来越多,老子以后为微软写底层编译器会活活累死。于是,.Net诞生了。恩,老海是个灰常合格的哲学家。
2、贝尔实验室内的困惑。 我们已经重写操作系统了,那个老小子,怎么又进来了?几十年后某人阴笑~~谁叫你们用的都是偶的编译器。
3、 ... 以上与程序相关,以下你可以认为无关。
通过以上我们可以看出,凡是事务都存在两个方面,相似的一方面,相对的一方面。对于相似性的处理一般采用抽象的方法,对于相对性的处理,一般采用特例化的方法。相对性因为相对论的广泛影响,已经广为人知。相似性的普及还有待提高。我这里指的相似性,不仅仅是大家看到的作为归类的相似性,也包括不同领域间的相似性。套用相对论的词语,可以用狭义相似性,和广义相似性来区别对待。 相似性存在于方方面面,比如不同物体的组成元素构成类似、原子的结构和星系的类似、历史事件的类似、文化本质的类似等等。从某个角度说,分析相似性是一种思维的方法,可以提高各个领域研发人员的创新能力。 我也希望,我的思考,可以带给你更多的思考。 转载请注明出处,谢谢。