随着面向对象的语言(如java)的迅速发展与普及,越来越多的编程人员开始在应用开发中使用这些语言.然而原有的开发语言(即面向操作的开发语言如c++等)在短时间内还不可能退出历史舞台,因此现在就出现了面向对象的语言与传统的面向操作的语言共存的局面.在设计应用中同时使用两类不同的语言(混合语言设计)比过去只使用一类语言会带来许多新的问题,其中复杂性就是混合语言设计中最经常遇到的问题.下面我们探讨混合语言设计中可能导致复杂性增加的地方,以及如何减少以至消除这些复杂性.
复杂性
专家将应用开发过程产生的复杂性分为两类,即非本质的(accidental)与本质的(essential).本质的复杂性是对于解决目标问题所必然产生的复杂性,非本质的复杂性是由于选择了不适当的开发工具与设计工具而产生的复杂性.对于一个功能确定的程序来讲,本质的复杂性是确定的,而非本质的复杂性则是没有限制的.因此,一个应用的开发要想较顺利地取得成功,就需要尽可能地减少非本质的复杂性. 【程序编程相关:盖茨:密码将在未来3-4年内完成历史使命】
复杂性是应用开发过程中最令人头疼的一个问题.每当在一个应用中增加一个功能时,它的复杂性通常呈几何级的增长.这种复杂性往往导致程序的开发无法再继续下去.这也是现在为什么许多应用只有beta版本而没有正式版的原因. 【推荐阅读:黑客盯上馒头血案 六成相关论坛含有病毒链】
面向对象的设计(ood)将一个程序分解成根据具体的对象而设计的一系列元素.这些具体对象的行为与数据以一种叫做“类(class)”的编程单元进行打包.应用程序创建一个或多个这些类的例示,也称为“对象(object)”.类的行为是通过创建对象之间的关系组合在一起的. 【扩展信息:IBM修正Lotus Notes缺陷 黑】
ood的特点
ood允许开发者用两种主要的方法来控制复杂性的增加.第一,ood定义严格的出口语义,这允许开发者隐藏实现的细节,并且明确说明什么方法是其它的对象可以访问的.这个信息隐藏使得可以对大部分的代码进行修改而不影响其它的对象.
第二,ood将对象之间的关系分为四类:继承.包容.使用与协调.适当地使用这些关系可以大大减少应用开发过程中本质的与非本质的复杂性.如,继承是产生面向对象设计中可再使用的主要因素.这个再使用性是通过代码共享与多态性获得的.这种再使用可以大大减少应用的本质的复杂性.包容允许一个类的用户在使用包容器时忽略被包容的类(class).... 下一页