面向过程和面向对象的联系和区别

以C语言和C++为例。

C语言是面向过程的,封装单元是函数。函数里面按照逻辑流程一步一步实现就行了,这符合我们现实生活中解决问题时的思考过程。

C++是面向对象的,封装单元是类。首先,面向对象是为了提高开发效率而设计的。使用C语言开发大项目编码量很大,开发难度很大。一方面是因为大项目业务繁琐,另一方面是因为C语言只能实现函数层面的复用,导致代码复用率不高。而C++在函数的基础上,提供了更高等级的封装——类,类的三个特性,继承、封装、多态,提高了代码复用率,减少代码量,同时又能减少代码耦合,能较好的胜任大型项目的开发。

需要明确的一点是,面向过程和面向对象之间的关系,绝不是互相排斥的两种编程方法。相反,面向对象是对面向过程的一次更高等级的封装。这也就是为什么C++是完全兼容C语言的,这一事实也从侧面说明了,面向对象和面向过程不是二者选其一的编程方式,而是可以同时存在的编程方式。

从类的编写方式看,它和客观世界的事物抽象模型比较契合。它将事物的属性抽象成类的属性,将事物的行为抽象成类的方法。这体现了类的封装特性:将某类事物的相关信息封装在一起,更好管理,正因为高内聚,所以类之间只需要少量接口就可以相互配合工作,也就是实现了低耦合。

很多面向对象的教程的内容只是教读者,类是如何描述事物的,读者虽然感觉用类描述事物的确很合适,但是却不知道既然可以面向过程解决问题,为什么还要面向对象?这是因为,当我们谈及面向对象编程的时候,我们实际上谈的是一种适合大型项目开发的代码复用技术和高内聚低耦合技术。


posted @ 2022-05-22 11:22  撬动未来的支点  阅读(214)  评论(0编辑  收藏  举报