正文

面向对象基础(OO)2005-11-15 10:35:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wondgergis/6980.html

分享到:


面向对象的软件开发对于90年代,就像是结构化的软件开发对于70年代那样让人着迷,而且 OO 的发展势头还在日益加速。OO 最初被多数人看作只是一种不切实际的方法和满足一时好奇心的研究,而现在已经得到了人们近乎狂热的欢迎。许多编程语言都推出了支持面向对象的新版本。大量的面向对象的开发方法被提出来。

一、软件工程:

需求分析 --> 总体设计 --> 详细设计 --> 编码 --> 测试
 (OOA)      (OOD)      (OOP)  (Coding) (OOT)
   ↑____________________________________________|

  1、过程语言(高级语言):

    - 过程或函数块、函数库,数据公开暴露给算法,使得修改函数体不影响程序代码几乎不可能(数据与函数绞在一起)。

    - 结构化编程:不是改变使用的语言,提供了一个新的处理方法,如设计框图、流程图,以阐述各函数之间的相互作用关系和数据如何流过该程序,不利于独立开发,且饱受开发循环的折磨。

    - 算法总是离不开数据结构,只能使用特定的数据结构。由于数据结构和数据对所有函数都可见,很难把握数据的修改出自哪个函数,这些数据的安全性得不到保障。

    - 自上而下地解决规模较小的问题:程序规模小,并不一定效率高。一些小程序,可以通过结构化的程序设计技巧和优化,小幅度地提高运行速度,但是往往都是以牺牲可读性为代价的,给维护造成了大量的困难。一旦程序规模扩大,程序的可读性和可维护性,甚至连结构化的程序设计都感到力不从心。

  2、1967年,Simula 67 语言开始引入 OOP 的概念。

  3、80 年代:面向对象的程序设计:模块化的编程思想,自上而下解决较复杂的问题。算法与数据结构被捆绑成一个类,从这样的角度看问题,就不用为如何实现通盘的程序功能而费劲心机了。

  4、90 年代:类库或 API,toolkit。

二、面向对象技术认为软件是相互协作的一堆信息与行为的集合,它有自己的数据,也有自己的行为。这和以前那种用文件存储数据以及用程序表现行为的理念迥然不同。

    面向对象的概念从 70 年代开始流行后,很多编程语言(如 C++,JAVA,Eiffel 等)都采用了面向对象的原理。面向对象的建模技术也紧随其后。但是,很多公司并不懂得如何使用这些面向对象的技术,所以他们并没有真正从中受益。对于他们来说,现在最大的问题依然是:他们为什么没有实现面向对象技术所承诺的巨大收益?这个问题的答案也许是:他们在应用新技术的时候,思考问题还是习惯于以前的方式,他们不懂得从面向对象的角度来解决问题。在结构化的设计方法发展到面向对象的方法后不久,研究发现:许多公司在开发时间上的节约不超过 20%,这使得他们不愿意花大力气改变原有的工作方法。

    面向对象的原理是工具的设计原则,因此理解这些原理对于工具的使用有直接的影响。

三、“面向对象”这个术语把真实世界的事物看作对象。

    以目标为核心的面向对象技术,将确定目标作为最首要的任务,从而在研究和分析的初期阶段避开对实现方法的讨论,这样有利于以后考虑多种实现方法,并从中选取最合适的。

四、面向对象的程序设计:

  1、五个过程:分析,设计,实现,测试,发布。
    - 分析:要开发的系统需要做什么,从用户的角度建立概念模型。
    - 设计:如何实现目标,根据分析结果建立:
      * 逻辑模型:描述对象以及对象之间的相互作用关系。
      * 物理模型:借助于 UML 描述类和接口的技术实现(不是编码)。

  2、简单与抽象:
    - 面向对象的语言简化了编程。
    - 抽象:暴露公有的接口,隐藏私有的实现细节。
    - 抽象概念的发展:
      * 函数库 Function
      * Class
      * 类库,Toolkit,Framework 和 API

阅读(4580) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册