当前位置: 首页 > java >正文

面向过程与面向对象

一、定义

面向过程:传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化!

→ 将要实现的功能描述为⼀个从开始到结束按部就班的连续的“步骤”,依次逐步完成这些步骤,如果某⼀个步骤的难度较⼤,⼜可以将该步骤再次细化为若⼲个⼦步骤,以此类推,⼀直到结尾并得到我们想要的结果。

面向对象:所谓的模拟现实世界,就是使计算机的编程语⾔在解决相关业务逻辑的时候,与真实的业务逻辑的发⽣保持⼀致,需要使任何⼀个动作的发⽣都存在⼀个⽀配给该动作的⼀个实体(主体),因为在现实世界中,任何⼀个功能的实现都可以看做是⼀个⼀个的实体在发挥其各⾃的“功能”(能⼒)并在内部进⾏协调有序的调⽤过程!

二、核心

面向过程:程序 = 数据结构 + 算法  

特点是:自顶向下设计,按步骤执行

面向对象:程序 = 对象 + 消息

提点是:封装、继承、多态三大特性

三、属性和功能

定义这些动作的主体,为其增加相应的属性和功能

属性就是实体固有的某些特征特性信息,在⾯向对象的术语中,属性就是以前的变量。

功能就是就是实体可以完成的动作,在⾯向对象的术语中,功能就是封装成了函数或⽅法

 实体去执行这些动作(功能),各个实体按顺序去执行他们的功能构成了一个过程,这就是面向过程

四、两者的区别

概念面向过程面向对象
核心思想函数为中心,关注“怎么做”(How)对象为中心,关注“谁来做”(Who)
程序组成一系列函数(过程)的集合一系列相互作用对象的集合
设计范式自上而下(Top-Down),逐步细化自下而上(Bottom-Up),先抽象出对象再组合
核心概念函数、变量、顺序、分支、循环类、对象、封装、继承、多态
数据与函数关系分离。数据由函数处理,在函数间传递结合。数据和对数据的操作被封装在对象中

五、联系

面向过程是基础。两者并非水火不容。在一个大型的面向对象系统中,某个具体类的方法完全可以使用面向过程的思维来编写。

面向过程:

优势:性能高、流程直观、适合简单任务

劣势难维护、难扩展、难复用、安全性差

面向对象:

优势:易维护、易扩展、易复用、适合复杂系统

劣势性能略有开销、概念更复杂、设计开销大

http://www.xdnf.cn/news/18761.html

相关文章:

  • AP服务发现中两条重启检测路径
  • Linux系统操作编程——http
  • 逆向抄数工程师能力矩阵:设备操作(±0.05mm 精度)× 曲面重构 ×GDT 公差分析
  • springboot项目每次启动关闭端口仍被占用
  • CTFshow系列——命令执行web53-56
  • GO学习记录八——多文件封装功能+redis使用
  • Coze用户账号设置修改用户昵称-前端源码
  • Vue 3 defineOptions 完全指南:让组件选项声明更现代化
  • `lock()` 和 `unlock()` 线程同步函数
  • Node.js(1)—— Node.js介绍与入门
  • maven-default-http-blocker (http://0.0.0.0/)
  • 设计模式4-建造者模式
  • 【AI论文】LiveMCP-101:针对支持多主体通信协议(MCP)的智能体在复杂查询场景下的压力测试与故障诊断
  • iptables 防火墙技术详解
  • 【AI编程】如何快速通过AI IDE集成开发工具来生成一个简易留言板系统
  • 使用 HandlerMethodReturnValueHandler 在SpringBoot项目 实现 RESTful API 返回值自动封装,简化开发
  • Linux系统网络管理
  • 积分排行样式
  • 动态住宅代理:跨境电商数据抓取的稳定解决方案
  • 3785定期复盘代码实现设计模式的越识应用
  • Java接口调用第三方接口时的超时处理策略
  • 浅谈为什么尾递归更高效?——从调用栈和汇编的视角
  • 开源零信任本地化部署实战指南:Keycloak + OpenZiti 完整方案
  • 机器学习-朴素贝叶斯
  • 常用的分布式ID设计方案
  • 可信医疗大数据来源、院内数据、病种数据及编程使用方案分析
  • 【MTCNN网络结构记忆卡片】--003nets.py
  • 嵌入式第三十六天(网络编程(TCP))
  • Java的数字计算
  • More Effective C++ 条款06: 区分自增自减操作符的前缀和后缀形式