面向对象与面向过程对比总结

简介: 面向对象与面向过程对比总结

面向对象与面向过程


面向过程:


是一种以过程为中心的编程思想。具体可以理解为生活中我们去超市买东西这件事。


我们首先是去把他分解为几步,第一步出门,第二步到达超市,第三步选择要买的东西、第四步付钱,第五步回家。这是我们去思考解决这件事情的步骤。而且我们在编程的时候也是按照这个步骤去写代码的。


这种解决问题的模式更加贴合我们生活习惯。所以这种编程范式更加倾向于小型的程序。这是通过这个例子说明的面向过程的内涵,面向过程还有其它的一些优势,就是按照这种范式去开发的软件性能相对于面向对象开发的软件性能还要快。


但是面向过程开发的软件也是有弊端的,就是这种软件后期的维护、扩充、复用都不理想。


面向对象:


是一种以对象为中心的编程思想。

特征:封装、继承、多态


面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。


这里的对象是指的我们生活中能够见到听到的物品、一切名词、宾语,这里我们还是去使用去超市买东西这个例子来以面向对象的思路去分析这件事情。


这件事情中只需要找到对象,有了这些对象以后才去考虑后续实现这些事情。比如在这件事中抽象出来的对象可以有参与人、场所、道具这三个对象,其余的对象是在这三个对象基础之上去扩展,比如超市这里你可以去很多家超市去买东西,那么你这个超市就基于这个场所去扩展就好了。


通过这件事可以看出面向对象具有的特性也可以称为优点那就是可复用、可维护、可扩充,通过这些特性我们可以得出面向对象的这种开发方式更适合于大型的软件。


对比总结


通过上述的描述我们可以看出


面向过程是性能快、倾向于小型程序,但是这种开发形式会导致后期的维护、扩充、复用都不理想

面向对象是适合大型软件的开发,对于后期的维护、复用、扩充都是很方便的,缺点就是性能相对于面向过程开发的软件性能相对低。

在我们现在熟知的两大操作系统中就有使用面向过程开发的,也有面向对象。


分别是linux系统(面向过程)和windows系统(面向对象)。


对于这两个开发范式的对比并不是说谁好谁坏,只是为了明确这两者之间的区别,以及在我们以后的开发中酌情去考虑应该使用哪种方式去开发。


相关文章
|
Kubernetes 容灾 测试技术
ChaosBlade详细介绍
ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,包含混沌工程实验工具 chaosblade 和混沌工程平台 chaosblade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。【2月更文挑战第11天】
1954 12
|
9月前
|
机器学习/深度学习 算法 PyTorch
PyTorch 实现MobileNetV1用于图像分类
本实验基于PyTorch和昇腾平台,详细讲解了如何使用MobileNetV1模型对CIFAR10数据集进行图像分类。内容涵盖MobileNetV1的特点、网络架构剖析(尤其是深度可分离卷积)、代码实现及训练过程。通过该实验,读者可以掌握轻量级CNN模型在移动端或嵌入式设备中的应用,并了解其在资源受限环境下的高效表现。实验包括数据预处理、模型训练与测试等环节,帮助用户快速上手并优化模型性能。
278 53
|
算法 数据库 开发者
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
|
数据处理 API 调度
深入理解Flink Flink Job提交和Flink Graph详解
Apache Flink通过其高效的作业提交流程及灵活的Graph表示,为处理大规模数据流提供了强大的能力。理解Flink Job的提交与任务调度,以及Flink Graph的构建和优化,是深入掌握Flink并高效利用其处理能力的关键。Flink的设计哲学和强大功能使其成为实时数据处理领域的重要选择之一。
569 3
|
12月前
|
JavaScript API 图形学
(在线查看三维模型)在线CAD中创建三维建筑墙体
本文详细介绍如何使用mxcad3d创建建筑墙体模型。首先需安装Node.js及npm包管理器,并通过npm初始化项目、引入mxcad包。接着,在项目中编写HTML与TypeScript代码以实现墙体绘制,包括外墙、内墙、窗户和门的创建。最后,通过运行项目验证效果。教程及完整项目示例可在[mxcad3d官方仓库](https://gitee.com/mxcadx/mxcad_docs/tree/master/examples3D/Test3dWall.7z)获取。更多详细步骤,请关注“梦想云图网页CAD”公众号。
|
传感器 安全 大数据
|
监控 数据挖掘
探索ERP系统的质量管理模块
探索ERP系统的质量管理模块
438 9
|
机器学习/深度学习 监控 安全
现货量化合约跟单/交易所系统开发成熟技术/案例搭建/玩法详情/步骤指南
现货量化合约跟单系统开发是指构建一个系统,通过使用量化交易策略,实现将现货市场的交易信号自动化地应用到交易合约中,以进行自动化的跟单交易。 以下是现货量化合约跟单系统开发的关键概述:
|
数据挖掘 数据处理 API
使用TransBigData组件实现个人手机定位功能
使用TransBigData组件实现个人手机定位功能
269 0
|
存储 人工智能 数据库
亚马逊 AWSVS 阿里云 | 轻量应用服务器性能评测对比
亚马逊 AWSVS 阿里云 | 轻量应用服务器性能评测对比