Welcome

首页 / 软件开发 / C# / 面向对象技术的由来

面向对象技术的由来2007-09-18 本站 随着计算机硬件技术的飞速发展,计算机的容量、速度迅速提高,计算机取得了越来越广泛的应用,这就对开发提出了更高的要求。然而软件技术的进步却远远滞后于硬件技术的进步,人们常常无法控制软件开发的周期和成本,软件的质量总是不尽人意,经常是用之不灵、弃之可惜,有的软件甚至无法交付。这种状况人们称之为“软件危机”。

人们认识到,为了摆脱软件危机,必须按照工程化的原则和方法来组织软件开发工作。二十世纪七十年代流行的面向过程的软件设计方法,目的主要是解决面向过程语言系统的设计问题。它主要强调程序的模块化和自顶向下的功能分解。在涉及大量计算的算法类问题上,从算法的角度提示事物的特点,面向过程的分割是合适的。但是现在的软件应用涉及社会生活的方方面面,面对变动的现实世界,面向过程的设计方法暴露出越来越多的不足。例如:

●功能与数据分离,不符合人们对现实世界的认识。要保持功能与数据的相容也十分困难。

●基于模块的设计方式,导致软件修改困难。

●自顶向下的设计方法,限制了软件的可重用性,降低了开发效率,也导致最后开发出来的系统难以维护。

为了解决结构化程序设计的这些问题,面向对象的技术应运而生。它是一种非常强有力的软件开发方法。它将数据和对数据的操作作为一个相互依赖、不可分割的整体,采用数据抽象和信息隐蔽技术,力图使对现实世界问题的求解简单化。它符合人们的思维习惯,同时有助于控制软件的复杂性,提高软件的生产效率,从而得到了广泛的应用,已成为目前最流行的一种软件开发方法。

这里我们并不是说面向对象的程序设计方法一定比面向过程的方法或者是其它的程序设计方法要好。每种方法都有自己的一套理论框架,也有相应的设计、分析、建模的方法,所以它们都有各自的优缺点。选择的依据关键是要看目标系统所要解决的是哪种类型的问题。如对于工程计算,面向过程的方法就可能比面向对象的方法更加适合。如果解决逻辑推理、机器证明等人工智能方面的问题,我们可能就需要采用面向逻辑的技术和方法。如果是设计知识库和专家系统,我们还可以选择面向规则的程序设计技术。