面向对象与面向过程

这篇具有很好参考价值的文章主要介绍了面向对象与面向过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

面向对象与面向过程

一、面向过程与面向对象的本质是哲学。

从本质上而言,面向过程的和面向对象的本质是处理事务的方式。
它们不是所谓的顺序结构、类和抽象,也不是转型重载和继承等编程机制,而是如何理解事务,如何看待事务,如何处理事务的哲学思想。

一、面向过程

面向过程是最基本的编程思想,它基于事件本身的逻辑。
也就是要想做一件事,我们应该分哪几步,先做什么后做什么。

譬如以一个饭店炒菜的事情为例,首先买菜,洗菜,切菜,然后热锅,烧油,炒制,调味,装盘,最后查询这道菜是那桌点的,把菜呈给对应的客人。

这种把一件事情细化为多个步骤,然后按顺序完成的思想就叫做面向过程。

面向过程最核心的思路在于如何把一件事务按照逻辑拆解,譬如你肯定无法先热锅,然后装盘,再切菜,再炒制,然后再洗菜。

二、面向对象

面向对象则是在面向过程基础上进一步发展的团队协作。在理解过程的基础上,把任务合理的分给多个角色去做。

依然以饭店炒菜的例子为例,首先安排一个配菜员负责买菜,洗菜,和不断切菜,再安排一个厨师热锅,烧油,炒制,调味,装盘,最后再安排一个服务员负责上菜。

这种多个角色协作解决事务的思路就叫做面向对象。

面向对象的核心思路在于任务分配的合理,譬如你安排一个人负责热锅和买菜,一个人负责烧油和上菜,另一个人负责洗菜和装盘,厨房大概就会乱成一团。

三、面向对象与面向过程的关系

1. 只有一个对象的面向对象是面向过程,有多组过程的面向过程是面向对象。

面向过程和面向对象并不是不同的,它们在一定程度上可以相互转化。

当面向对象只有一个对象,任务全都分配给一个角色的时候,就没有了所谓的面向过程。

同样的,当有多个角色同时来解决同一个问题,每个角色负责一组行为时,也就从面向过程变成了面向对象。

1. 面向过程的核心思想是事件的逻辑,面向对象的核心思想是协作的秩序。

面向过程的核心思想是对事件按照逻辑进行合理的拆分,使之细化为按顺序执行的步骤。

面向对象的核心思想是如何把任务进行合理的划分,再分别交给不同的角色。

2. 面向过程是面向对象的基础,没有面向过程也就没有面向对象

面向对象是依赖于面向过程的,要能够对一个任务进行合理的划分,必须首先了解这个任务原本大体是怎样执行的,然后把原本一个角色完成的任务进行合理的拆分。而且拆分之后每个角色的工作还是面向过程的。

同样以人举例,面向过程是一个人做事,面向对象是许多个(一个人)一起协作。连基本的一个人都没有的话,哪来的多人。而且就算一个任务分给多个人做了,每个人自己做事情不还是有逻辑顺序的吗?按上面餐馆的例子,配菜员不还是得按买菜洗菜切菜的面向过程流程走吗?

author:万能的小奇喵(bilibili)文章来源地址https://www.toymoban.com/news/detail-418124.html

到了这里,关于面向对象与面向过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 再谈编程范式(3):理解面向过程/面向对象/函数式编程的精髓

    面向过程是随着VB一起来到我的世界,那个时候会的非常有限,感觉能把程序写出来自己就非常棒了,VB是做那种可视化界面,在工具栏拖个框框放到面板上,然后就在各个事件上写完整的逻辑,什么封装,抽象,继承一概不懂,就有一种一个方法把实现过程需要的逻辑都罗列

    2024年01月20日
    浏览(42)
  • 【C/C++】C语言和C++的区别 | 面向过程与面向对象

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c++系列专栏:C/C++零基础到精通 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ c语言内容💖:

    2024年02月07日
    浏览(43)
  • 【WinForm】C#实现商场收银软件,从面向过程到面向对象,设计模式的应用

    实现商场收银系统从简单的面向过程到面向对象的演变。 最容易想到的: 单价*数量=总价 根据输入的单价和数量,直接计算,将结果显示在listbox控件中。 重置按钮可以清零。 1、运行效果 2、界面设计 3、代码 版本2在版本1的基础上增加了打折优惠。 1、运行效果 打折下拉框

    2024年02月09日
    浏览(45)
  • 系统架构设计师笔记第25期:面向对象软件架构演化过程

    面向对象软件架构的演化过程可以分为以下几个阶段: 单一模块:初始阶段,整个软件系统被实现为一个单一的模块,所有功能和数据都集中在一个代码块中。这种设计简单直接,但缺乏模块化和可维护性。 分层架构:为了提高可维护性和模块化,系统被分解为多个层次,

    2024年02月12日
    浏览(48)
  • 用策略模式干掉代码里大量的if-eles或则Swatch,提升B格由面向过程转为面向对象

    其实很简单 if里面的多个魔法常量 和HashMap里面的key是不是可以等比互换呢!! 所以我们核心就是从一个类似于HashMap这种的容器里去获取某一个key,就等同于进去到了if 的对应分支 而if 的对应分支 里面的业务,交给HashMap的Value去调方法完成没毛病把 --比如上述代码是判断字

    2024年02月08日
    浏览(41)
  • c、c++、java、python、js对比【面向对象、过程;解释、编译语言;封装、继承、多态】

    目录 内存管理、适用 区别 C 手动内存管理:C语言没有内置的安全检查机制,容易出现内存泄漏、缓冲区溢出等安全问题。 适用于系统级编程 C++ 手动内存管理:C++需要程序员手动管理内存,包括分配和释放内存,这可能导致内存泄漏和指针错误。 适用于游戏引擎和系统级编

    2024年02月08日
    浏览(75)
  • 【C++初阶】三、类和对象(面向过程、class类、类的访问限定符和封装、类的实例化、类对象模型、this指针)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【C++初阶】二、入门知识讲解 (引用、内联函数、auto、基于范围的for循环、指针空值

    2024年02月04日
    浏览(40)
  • 【前端面试3+1】12 toktn验证过程、面向对象特性、webpack和vite的区别、【字符串中的第一个唯一字符】

    用户登录:用户提供用户名和密码进行登录。 服务器验证:服务器接收到用户提供的用户名和密码,进行验证。 生成token:如果用户名和密码验证通过,服务器会生成一个token,通常包含一些加密的信息,如用户ID、过期时间等。 返回token:服务器将生成的token返回给客户端(

    2024年04月18日
    浏览(77)
  • 【iOS】对象的本质探索

    生成C++文件的一些命令: clang -rewrite-objc main.m -o main.cpp:(无法区分平台 不建议使用) xcrun -sdk iphonesimulator clang -rewrite-objc main.m -o main.cpp:(模拟器) xcrun -sdk iphoneos clang -rewrite-objc main.m -o main.cpp:(真机) xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc 源文件名 -o 输出的cpp文件名

    2024年02月16日
    浏览(36)
  • 本质矩阵(Essential Matrix)E进行分解的过程

    分解本质矩阵的过程遵循以下步骤: 使用奇异值分解(SVD)计算本质矩阵E的分解。SVD分解是一种将矩阵分解为三个矩阵的乘积的方法,它的形式为 E = UΣV^T,其中U和V是正交矩阵,Σ是对角矩阵。此步骤的结果存储在u、w和vt中。 把U矩阵的第三列复制到t,并进行归一化。t代表

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包