面向对象的优缺点.docxVIP

  • 21
  • 0
  • 约7.85千字
  • 约 7页
  • 2019-04-03 发布于江苏
  • 举报
面向对象的优缺点 什么是面向对象程序设计? 面向对象程序设计(OOP)技术汲取了结构化程序设计中的好的思想,并将这些思想与一些新的,强大的理念相结合,从而给你的程序设计工作提供了一种全新的方法。通常,在面向对象的程序设计风格中,你会将一个问题分解为一些相互关联的子集,每个子集内部都包括了相关的数据和函数。同时,你会以某种方法将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。当你定义了一个对象,你就隐含的创建了一个新的数据类型。 面向对象程序设计模式 发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点。OOP把数据看作程序开发中的基本元素,并且不允许它们在系统中自由流动。它将数据和操作这些数据的函数紧密的连结在一起,并保护数据不会被外界的函数意外的改变。OOP允许我们将问题分解为一系列实体——这些实体被称为对象(object),然后围绕这些实体建立数据和函数。 一、使用面向对象思想开发的优点: 易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。 2、质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 3、效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 4、易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。 缺点: 类和继承等特点使得程序会多很多指针操作来定位函数入口和自身要维护虚拟方法表等额外的工作,程序的处理效率相对要低(但程序开发效率高)。所以现在单纯的C语言还是大为用武之地的。 但随着科技的进步,CPU和内存的性能也突发猛进。由原来的1核到8核,内存16M和现在的16G,所以程序的效率多多少少会随着硬件的性能变得更好。你可以发现很多大的项目也开始由C转而变成让c++和JAVA等面向对象来写了。 二、面向对象的特点和优缺点: 1、特点 ? (1)利用特定软件直接从对象客体的描述到软件结构的转换。 ???(2)解决了传统结构化方法中客观世界描述工具与软件结构的不一致性。 ???(3)减少了从系统分析、设计到软件模块结构之间的多次转换映射的繁杂过程。 2、OO方法优缺点 ??? 优点: ???? (1)是一种全新的系统分析设计方法(对象、类、结构属性、方法)。 ???? (2)适用于各类信息系统的开发。 ???? (3)实现了对客观世界描述到软件结构的直接转换 ,大大减少后续软件开发量。 ???? (4)开发工作的重用性、继承性高,降低重复工作量。 ???? (5)缩短了开发周期。 ??? 缺点: ??? (1)需要一定的软件支持环境。 ??? (2)不太适宜大型的MIS开发,若缺乏整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题。 ??? (3)只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优化。 ??? (4)初学者不易接受、难学。 三、面向对象编程的优缺点: 1、优点: (1)通过继承,我们可以大幅减少多余的代码,并扩展现有代码的用途。 (2)我们可以在标准的模块上构建我们的程序,而不必一切从头开始。这可以减少软件开发时间并提高生产率。 (3)数据隐藏的概念帮助程序员保护程序免受外部代码的侵袭。 (4)容许一个对象的多个实现同时存在,而且彼此之间不会相互干扰。 (5)容许将问题中的对象直接映射到程序中。 (6)基于对象的工程可以很容易的分割为独立的部分。 (7)以数据为中心的设计方法容许我们抓住可实现的更多细节。 (8)面向对象程序的系统很容易从小到大逐步升级。 (9)对象间通讯所使用的消息传递技术与外部系统接口部分的描述更简单。 (10)更便于控制软件的复杂度。 面向对象方法学把分析、设计和实现很自然地联系在一起了。虽然面向对象设计原则上不依赖于特定的实现环境,但是实现结果和实现成本却在很大程度上取决于实现环境。因此,直接支持面向对象设计范式的面向对象程序语言、开发环境及类库,对于面向对象实现来说是非常重要的。 为了把面向对象设计结果顺利地转变成面向对象程序,首先应该选择一种适当的程序设计语言。面向对象的程序设计语言适合用来实现面向对象设计结果。事实上,具有方便的开发环境和丰富的类库的面向对象程序设计语言,是实现面向对象设计的最佳选择。 良好的程序设计风格对于面向对象实现来说格外重要。它既包括传统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则。 面向对象方法学使用独特的概念和完成软件开发工作,因此,在测试面向对象

文档评论(0)

1亿VIP精品文档

相关文档