面向过程 VS 面向对象:洗衣服的两种人生

面向过程 VS 面向对象:洗衣服的两种人生

作为一个Java工程师,经常被问到:"面向过程和面向对象到底有什么区别?"今天我们就用最接地气的例子——洗衣服,来聊聊这两种编程思想。

洗衣服的两种打开方式

面向过程:流水线作业

想象你是个效率狂人,洗衣服就像执行一套标准流程:

放衣服 → 加洗衣液 → 加水 → 洗涤 → 脱水

这就是面向过程的思维:把复杂问题拆解成一个个步骤,按顺序执行。就像工厂流水线,每个环节都有明确的职责,一环扣一环。

面向对象:分工合作

// 创建两个“演员”
Person 小明 = new Person("小明", 25);
WashingMachine 洗衣机 = new WashingMachine("海尔", "白色");

// 开始表演
小明.放衣服();
小明.加洗衣液();
洗衣机.洗涤();
洗衣机.漂洗();
洗衣机.脱水();

每个对象都有自己的"人设":

  • :有姓名、年龄等属性,会放衣服、加洗衣液等技能
  • 洗衣机:有品牌、颜色等属性,会洗涤、漂洗、脱水等功能

对比

面向过程:直来直往的实用主义

优点
  • 代码清晰, 将业务分解成若干个步骤, 每个步骤用函数实现,自上而下运行
  • 执行效率高, 没有多余的包装
  • 适合解决具体问题, 比如实现排序算法等
缺点
  • 代码像是意大利面条, 牵一发而动全身
  • 扩展性差, 想加个功能? 那重写吧
  • 复用性差, 天天重复造轮子

代表语言: C语言(老大哥就是这么朴实无华)

面向对象:优雅的建筑师

优点
  • 更贴近人类思维, 这个世界就是一个个对象
  • 代码复用性强
  • 维护方便
  • 扩展性好
缺点
  • 学习成本高, 需要理解抽象概念
  • 可能造成过度设计

代表语言: Java、C++、Python等(现代编程语言的主流选择)

面向对象的“3+5”

3个基本特征

  1. 封装:把数据和方法打包,外人只能通过规定的接口访问
  2. 继承:子类可以继承父类的特征,站在巨人的肩膀上
  3. 多态:同一个接口,不同的实现,一个遥控器控制多种设备

5个基本原则

  1. 单一职责原则
  2. 开发封闭原则
  3. Liskov替换原则
  4. 依赖倒置原则
  5. 接口隔离原则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值