面向对象 vs 面向过程

51 阅读1分钟

面向对象 vs 面向过程

🎯 核心区别

面向过程:关注"怎么做"(How)
面向对象:关注"谁来做"(Who)

📝 生活化类比

面向过程 - 做菜的步骤

1. 买菜
2. 洗菜
3. 切菜
4. 炒菜
5. 装盘

就像写菜谱,一步一步按顺序执行。

面向对象 - 餐厅分工

厨师对象:
- 属性:姓名、技能等级
- 方法:炒菜()、调味()

服务员对象:
- 属性:工号、服务桌数
- 方法:点餐()、上菜()

每个"对象"都有自己的职责和能力。

💻 代码对比(Java)

面向过程风格

public class ProcessOriented {
    public static void main(String[] args) {
        // 计算圆的面积
        double radius = 5.0;
        double area = calculateArea(radius);
        printResult(area);
    }
    
    public static double calculateArea(double r) {
        return 3.14 * r * r;
    }
    
    public static void printResult(double area) {
        System.out.println("面积是:" + area);
    }
}

面向对象风格

public class Circle {
    private double radius;
    
    public Circle(double radius) {
        this.radius = radius;
    }
    
    public double calculateArea() {
        return 3.14 * radius * radius;
    }
    
    public void printArea() {
        System.out.println("面积是:" + calculateArea());
    }
}

// 使用
Circle circle = new Circle(5.0);
circle.printArea();

🔍 本质区别总结

特征面向过程面向对象
思维方式自顶向下,分解问题模拟现实世界,抽象对象
代码组织函数为主体类和对象为主体
数据处理数据和函数分离数据和方法封装在一起
复用性函数复用继承、多态复用
维护性修改影响面大修改局限在类内部

🌟 什么时候用哪种?

面向过程适合

  • 简单的工具脚本
  • 数学计算
  • 系统底层编程

面向对象适合

  • 复杂的业务系统
  • 需要团队协作的大项目
  • 需要频繁维护和扩展的软件

💡 记忆口诀

面向过程:流水线工作,一步接一步
面向对象:专业分工,各司其职