试论软件开发中接口的统一,软件的接口比硬件的接口要复杂得多。

       软件开发,不仅仅是开发语言的多种多样,其中各种接口和方法函数亦是让人摸不着头脑。一个软件开发初学者很容易就此陷入迷途,难以自拔。单就开发语言来说,就有JAVA,C++,C#,Perl,JavaScript,Visual Basic,VS.NET,R语言等等。各种语言的内部复杂性和每种语言的数据类型,数据结构亦不尽相同,各有各的法则和编程规矩。在这里,我只讲一下,软件程序中的接口问题,以求抛砖引玉。
       软件程序的接口,相比计算机硬件设备的接口,要复杂得多,我觉得这主要归因于,软件是人类大脑的延伸和模拟,而硬件,只不过是人类身体的模拟和简单的仿照。硬件对于人类知识和人类智慧的相似度上,远远比不上软件要来得复杂。而计算机硬件的接口在发展的成熟度方面,已经是做得很好的了,最常见的例子就是USB接口,统一的USB接口让任何一种配备此种接口的外围设备都可以很轻易的连接上电脑并操作。虽然USB2.0和USB3.0的接口颜色不同,但也是大同小异。手机可以说是一种更加智能,更加小巧的计算机,其充电的接口在早期虽然说千差万别,但是随着时间的推移,也逐渐向统一的电源充电接口迈进。难度小的接口要统一起来是很容易的,但是对于软件来说呢?问题就没这么简单了。
       我以JAVA语言的接口来说一下软件开发的接口的统一问题。说起接口,软件接口,就不能不说类库了。JAVA有庞大的类库,同样,作为和JAVA同等重要的编程语言,C++也有庞大的类库,但是,对这两种语言,没有任何一个程序员(哪怕是最顶尖的专业程序员)能说他熟悉JAVA或者C++中的所有的类,即类库中的所有的类。任意两个JAVA类要进行通信和调用的时候,怎么办呢?那就要用到类的接口了。一个JAVA类,哪怕是最简单的JAVA类,也是有多个接口即调用方法的。所有的JAVA的类加起来有几百上千之多,那么,接口的数量也就呈指数形式递增。这样的接口的数量级,任凭哪个程序员用起来都是吃不消的。要消除接口的数量,按照一种已经广为人知的方法,就是代码重用和(学术一些的说法)设计模式了。把一个个JAVA组件象机器生产中的零件一样,保存起来,以备开发时使用,接口也尽量统一,那么,大型系统的开发会省事许多。
       说了这么多,估计在软件开发中这样做的程序员也不多,要是JAVA组件没有设计好,不好用,那么又需要重新开发和设计这个组件,这又是后话了。我这篇文章说的是软件开发接口的统一,只是初探,希望能抛砖引玉。。。

你可能感兴趣的:(软件技术)