再度思考面向过程和面向对象

本文详细探讨了面向过程和面向对象两种程序设计思想的区别,包括设计思路、适用范围和代码复用。面向过程注重步骤,适用于资源敏感的系统如Linux,而面向对象强调对象和复用,适合功能复杂、维护要求高的系统如Windows。两种方法各有优缺点,选择时需根据系统需求。同时,文中指出了绘制思维导图时应注意的规范和错误示例,并提供了修正后的思维导图。
摘要由CSDN通过智能技术生成

一、面向过程和面向对象的区别:

(1)从设计思路来看:

面向过程:程序设计的重点是分析解决问题的步骤,以及完成步骤的流程,是一种结构化自上而下的程序设计方法。即面向过程注重的是解决问题的具体步骤。

面向对象:程序设计的重点是把构成问题的事物分解成对象,从局部着手,通过迭代的方式逐步构建出整个程序,是一种以数据为核心,以类设计为主的自下而上的程序设计方法。

即面向对象注重的对象,注重的是“谁”来干事,而不是怎么干事。注重的是多少人来干事,而不是干多少事。

(2)从适用范围来看:

面向过程:由于不涉及实例化对象等操作,程序性能更高,开销更少,因此像切入式等对资源要求较高的系统大多都采用面向过程开发。

面向对象:由于其抽象、封装、继承、多态的特性,使得系统具有更好的扩展性、维护性、复用性,对于功能复杂且维护成本较高的系统采用面向对象的开发。

这一点也是由于两者各自不同的优缺点,导致适用范围不同。二者没有好坏之分,在不同情况或者要求下,选择适合的设计思想。

比如:liunx是面向过程的C语言开发的,为什么?

——liunx必须得用面向过程,因为他要占资源少,响应快,性能好。

面向对象因为类调用时需要实例化,开销比较大,比较消耗资源,反应速度慢,代码执行效率低,用的时间长,占的资源多。而Liunx操作系统是管理资源的,以至于对操作系统而言,性能是最重要的因素,对资源占用要少,响应速度要快。所以牺牲了可复用可维护,维护成本高,对开发人员要求也高。

当然,WINDOWS系统是用面向对象的语言——C++编写的。之所以微软选择了C++而不像LINUX一样选择C语言,其根本原因就是WINDOWS操作系统本身是微内核系统,所以扩展性及以后的维护要求非常重要,并且Windows非开源的,要考虑商业化,所以维护成本也很重要,因此选择面向对象的C++语言就可以很好的降低维护成本,也可以更好的可拓展。

所以,面向过程语言和面向对象语言二者没有好坏之分,只是合适不合适,在开发过程中,我们要多方面考虑我们的系统需求,合理的选择。

(3)从代码复用来看:

二者都可以实现代码复用,但是面向过程主要是函数,将具体的实现逻辑封装为方法进行复用;而面向对象主要是类,面向对象的基础是抽象,抽象出对象,进行封装、继承、多态,从而很好的实现代码的复用。

二、总结面向对象和面向过程的思维导图

第一版:

分析这版导图,首先从思维导图的规范上来说,不太符合画导图的规范:

①思维导图应该尽可能是对称的,不应该画在一侧。

②分支不能超过5个

③字数不能超过8个,同一级的是一类

④标题不够抽象,主标题与子标题重复

其次,从内容上分析:

①对面向对象和面向过程的目的,理解不清晰,描述不准确。比如面向对象:抽象是 从看着不同的事物中抽象出来对象,而不是对对象抽象,要把可能的用例列出来,抽象成对象,然后再由多变少的过程,这叫抽象。对象是最后抽象出来的。

②面向对象的缺点也是有的,没有写出来;并且面向过程的缺点中,面向过程的代码也是可以复用的,不过是注重的函数。

③对于例子,描述的不清晰,应该用同一个例子进行对比学习分析。

第二版图:

 分析这版图:

①面向对象的缺点“需要知识基础”描述不明确,需要什么知识基础?——需要抽象能力,面向对象程序设计的理论基础等等;

②面向过程的目的和优点写的不好,面向过程和面向对象两种设计思想没有好坏之分,只是目标(目的)不同。

③例子描述的不好,对于面向对象来说,不够丰富,无法理解对应到代码上是怎样。对于面向过程来说,面向过程注重的是实现逻辑,而不是对象,不应该写“我”,面向过程不注重对象,注重过程/步骤。

第三版图:

分析这版导图:

①从图像结构上看,对称,美观,层数分支字数 基本符合358

②从内容上看,对于面向对象和面向过程的目的、优缺点描述清晰明确,且实例对比分析更能体现面向过程和面向对象的特点。

另外:附上画思维导图的规范:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ariel_欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值