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

news/2024/10/17 16:03:24/

编程语言分析

  • C语言
  • C++部分面向对象和部分面向过程
  • Java面向对象

面向过程

  • 面向过程注重解决问题的步骤,第一步干什么,第二步干什么
  • 面向过程注重因果关系,因为A所以B。
  • 面向对象注重过程和与实现步骤

面向过程的缺点

  • 代码耦合度过高,扩展能力差

    面向对象注重每一步之间的因果关系。
    如A模块和B模块联合形成一个模块,该模块又和另外一个模块构成另外一个模块。
    其中任何一模块出现问题,都有可能造成系统崩溃

    • 耦合度的概念
      • 如螺丝和螺母耦合度低,可以拧开因为他们之间有接口
      • 螺丝和螺母粘在一起,耦合度高
      • 集成显卡和独立显卡
      • 开发计算机使用面向对象,每一个部件都是一个对象,耦合度低
      • 开发计算机使用面向过程,所有部件都融合在一起
      • 盖浇饭和蛋炒饭的例子

面向对象

  • 面向对象的概念:将现实世界分割成一个个单元,每一个单元都是一个对象,驱动让其各个对象协作起来,形成一个系统

    • 面向对象注重的是对象ABCD之间如何组合的问题
  • 面向对象举例

    1. 对象张三,对象香烟,对象打火机,对象吸烟的场所
    2. 将其驱动起来就能模拟一个人抽烟的场所
    3. 上述任何一个对象都可以替换

面向对象术语

名称解释
OOD面向对象设计
OOA面向对象分析
OOP面向对象编程

面向对象三大特征

  • 封装
  • 继承
  • 多态

http://www.ppmy.cn/news/58371.html

相关文章

Packet Tracer - 配置 IPv6 静态路由和默认路由

Packet Tracer - 配置 IPv6 静态路由和默认路由 IPv6 地址分配表 设备 接口 IPv6 地址/前缀 默认网关 R1 G0/0 2001:DB8:1:1::1/64 不适用 S0/0/0 2001:DB8:1:A001::1/64 不适用 R2 G0/0 2001:DB8:1:2::1/64 不适用 S0/0/0 2001:DB8:1:A001::2/64 不适用 S0…

B站java、计算机学习整理(菜鸟版本)

B站java、计算机学习整理(菜鸟版本) 简介1、入门篇2、工具篇3、数据库篇4、框架篇5、JVM 篇6、源码篇7、算法与数据结构8、操作系统9、计算机组成原理10、计算机网络11、 设计模式 简介 处在互联网时代,是一种幸福,因为各式各样的…

Oracle系列之六:Oracle表分区

Oracle表分区 1. 基本概念2. 范围分区3. Hash分区(散列分区)3. 复合分区 1. 基本概念 Oracle表分区是将一个大型表分割成更小、更易于管理的部分的技术。分区后的表被称为分区表,其中每个分区都可以独立地进行维护、管理和查询。表分区可基于…

SpringCloud:ElasticSearch之集群

单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点单点故障问题:将分片数据在不同节…

超级详解MySQL执行计划explain

1、什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构…

JVM调优入门指南:掌握步骤、参数和场景

前言 作为Java开发者,我们经常需要优化应用的性能,其中JVM调优是非常重要的一部分。在本文中,我们将介绍JVM调优的一般步骤和方法,了解JVM调优参数,如堆大小、新生代比例、GC算法等参数的作用和配置方式,并…

c++中set_difference这个函数的意义和用法

今天正好碰到了这个函数,虽然大概可以猜出这个函数的作用,但是仍然期待一个通俗易懂的解释,网上搜索了一下,搜到百度百科,感觉没有抓住重点,虽然示例也勉强可以理解,但是总感觉讲究不够直观。 …

二叉树的遍历方式

文章目录 层序遍历——队列实现分析Java完整代码 先序遍历——中左右分析递归实现非递归实现——栈实现 中序遍历——左中右递归实现非递归实现——栈实现 后续遍历——左右中递归实现非递归实现——栈加标志指针实现 总结 层序遍历——队列实现 给你二叉树的根节点 root &…