time 
设为首页】【收藏本站
当前位置: 主页 > 软件工程 > 软件过程 > 程序设计方法的演化:面向对象程序设计

程序设计方法的演化:面向对象程序设计

时间:2009-12-04 22:56 点击:547次 字体:[ ]




  3.面向对象程序设计

  20世纪90年代,由于计算机硬件的飞速发展,对软件系统在规模和性能方面的要求也在不断的提高。因此,传统的程序设计方法使得软件和硬件能力的差距迅速扩大。传统的软件工具、软件技术和抽象层次越来越难以适应大规模复杂软件系统的开发特点。因此,软件能力已成为制约软件发展的主要因素。

  OOP方法源于20世纪70年代中后期,在20世纪80年代逐步代替了传统的SP方法,成为最重要的方法之一,至今OOP方法被广泛应用于各个领域。面向对象的基本思想与结构化设计思想完全不同,面向对象的方法学认为世界由各种对象组成,任何事物都是对象,是某个对象类的实例,复杂的对象可由较简单的对象的某种方式组成。OOP的基石是对象和类。对象是数据及对这些数据施加的操作结合在一起所构成的独立实体的总称;类是一组具有相同数据结构和相同操作的对象的描述。面向对象的基本机制是方法和消息,消息是要求某个对象执行类中某个操作的规格说明;方法是对象所能执行的操作,它是类中所定义的函数,描述对象执行某个操作的算法,每一个对象类都定义了一组方法。

  OOP有3个重要特性:封装性、继承性和多态性。封装性是指对象是数据和处理该数据的方法所构成的整体,外界只能看到其外部特性(消息模式、处理能力等),其内特性(私有数据、处理方法等)对外不可见。对象的封装性使得信息具有隐蔽性,它减少了程序成分间的相互依赖,降低程序的复杂性,提高程序的可靠性和数据的安全性。 继承性(Inheritance)反映的是类与类之间的不同抽象级别,根据继承与被继承的关系,可分为基类和衍生类,基类也称为父类,衍生类也称为子类,正如“继承”这个词给我们的字面提示一样,子类从父类那里获得所有的属性和方法,并且可以对这些获得的属性和方法加以改造,使之具有自己的特点。继承性使得相似的对象可以共享程序代码和数据,继承性是程序可重用性的关键。多态性是指在形式上表现为一个方法根据传递给它的参数的不同,可以调用不同的方法体,实现不同的操作。将多态性映射到现实世界中,则表现为同一个事物随着环境的不同,可以有不同的表现形态及不同的和其他事物通信的方式。多态性使程序员能在一个类等级中使用相同函数的多个版本,程序员可以集中精力开发可重用的类和方向而不必过分担心名字的冲突问题。

  OOP方法是以“对象”为中心进行分析和设计,紧抓“模型化世界”的对象,使这些对象形成了解决目标问题的基本构件,即解决从“用什么做”到“要做什么”。其解决过程从总体上说是采用自底向上方法,先将问题空间划分为一系列对象的集合,再将对象集合进行分类抽象,一些具有相同属性行为的对象被抽象为一个类,类还可抽象分为子类、超类(超类是子类的抽象)。其间采用继承来建立这些类之间的联系,形成结构层次。同时对于每个具体类的内部结构,又可采用自顶向下逐步细化的方法由粗到细精化之。调试运行时通过向类对象发消息来完成,对象执行相应操作并返回结果,使对象集的初始状态变成了终态。故OOP总体来说主要是不断设计新的类和创建对象的过程。

  与传统的SP相比,OOP方法具有许多优点,如采用“对象”为中心的设计方式,再现了人类认识事物的思维方式和解决问题的工作方式;OOP方法以对象为唯一的语义模型,整个软件任务是通过各对象(类)之间相互传递消息的手段协同完成。因此,能尽量逼真地模拟客观世界及其事物;由对象和类实现了模块化,类继承实现了抽象对象,以及任一对象的内部状态和功能的实现的细节对外都是不可见的,因此很好地实现信息隐藏。由此建立在类及其继承性基础上的重用能力可应付复杂的大型的软件开发。面向对象方法使得软件具有良好的体系结构、便于软件构件化、软件复用和良好的扩展性和维护性,抽象程度高,因而具有较高的生产效率。目前,面向对象程序设计语言以Java、C++ 为代表。



本文地址 : http://www.fengfly.com/plus/view-159870-1.html
标签: 对象 继承 方法 程序设计 演化 面向
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: