面向过程(Procedure Oriented 简称 PO)
- 把事情拆分成一个个的方法和数据,然后按照一定的顺序,执行完这些方法,等方法执行完了,事情就搞定了。
(因为每个方法都可以看作一个过程,所以叫面向过程)。
强调的是功能行为,以函数为最小单位,考虑怎么做。
面向对象(Object Oriented 简称 OO)
- 面向对象会把事物抽象成对象的概念,先抽象出对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。
强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
以洗衣机洗衣粉举例
- 面向过程
加衣服-->加洗衣粉-->加水-->漂洗-->清洗-->甩干
代码
System.out.println("放衣服!");
System.out.println("加洗衣粉!");
System.out.println("加水!");
System.out.println("漂洗!");
System.out.println("清洗!");
System.out.println("甩干!");
- 面向对象
new出两个对象 “人” 和 “洗衣机”
“人” 加入属性和方法:放衣服、加洗衣服、加水
“洗衣机” 加入属性和方法:漂洗、清洗、甩干
代码
class person {
public void Clothes() {
System.out.println("放衣服!");
}
public void WashingPowder() {
System.out.println("加洗衣粉!");
}
public void Water() {
System.out.println("加水!");
}
}
class machine {
public void Rinse() {
System.out.println("漂洗!");
}
public void Clean() {
System.out.println("清洗!");
}
public void SpinDry() {
System.out.println("甩干!");
}
}
person p = new person();
machine m = new machine();
p.Clothes();
p.WashingPowder();
p.Water();
m.Rinse();
m.Clean();
m.SpinDry();
两者的运行结果
放衣服!
加洗衣粉!
加水!
漂洗!
清洗!
甩干!
总结
- 面向过程
优点:
流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结 果,具体步骤清楚,便于节点分析。
效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。
缺点:
需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。
- 面向对象
优点:
结构清晰,程序是模块化和结构化,更加符合人类的思维方式;
易扩展,代码重用率高,可继承,可覆盖,可以设计出低耦合的系统;
易维护,系统低耦合的特点有利于减少程序的后期维护工作量。
缺点:
性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。
开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端