面向对象编程与面向过程编程的区别
一、面向对象编程(OOP,Object Oriented Programming):
不必关心对象的具体实现,只需要能够满足用户的需求即可。主要以类或者对象为组织代码的基本单元。
对象的三个主要的特性:
1、对象的行为:可以对对象施加哪些操作,或者是对对象施加哪些方法。
2、对象的状态:施加方法时,对象如何回应。
3、对象的标识:如何判断具有向共同行为与状态的不同对象。
好处之一:可以让用户自定义Java类变得轻而易举。
二、面向过程编程:
过程是指解决问题的步骤:也就是先干什么,再干什么,然后再干什么【流程化作业】。
主要以“过程”作为组织代码的基本单元,属于一种流程话的编程风格,通过拼接一组顺序执行的方法,来操作数据完成这一项工作。
主要是数据与方法分离。猜测:可以先有方法,再有数据。最大的特点就是不支持类和对象。没有丰富的面向对象编程特征(继承、多态、封装)。
三、面向对象编程相比较面向过程编程的好处?
1、OOP 更加能够应对大规模复杂程序的开发
2、OOP 风格的代码更易复用、易扩展、易维护
3、OOP 风格的代码更易复用、易扩展、易维护
四、常见的面向过程编程?
1、滥用getter、setter方法。
2、滥用全局变量、全局方法。
代码中的配置参数一般设置为常量,放到某一个类中。静态方法将方法和数据分离,破坏了封装的特性,典型的面向过程风格。
3、定义数据和方法分离。
MVC三层结构包括了Model层、Controller层、View层,每一层都有自己固定的作用。并且在某一种程度下固定了编码的书写过程。是一种典型的面向过程编码的方式。当然了这种开发模式被人戏称为“基于贫血模型的开发模式”。
五、为什么明明知道面向对象编程与面向过程编程的区别,但还是容易写出面向过程风格的代码?????
在OOP类的设计中需要技巧和设计经验,思考如何封装合适的数据和方法到一个类里。
面向过程编程往往更加符合人的流程化思维方式,比如:在生活中完成一个任务,通常更思考完成任务第一步需要干什么、第二步需要干什么。但是面向对象编程恰恰相反。它是一种自底向上的思考方式。先将任务翻译为一个一个模块,最后按照流程将类组装起来,完成整个任务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix