函数式编程与面向对象编程的区别

时间:2015-11-30 06:38:23

标签: oop functional-programming

虽然这是一个非常基本的问题,但有人可以用例子解释一下。我们应该在哪里使用函数式编程和面向对象?

2 个答案:

答案 0 :(得分:3)

两个“思想流派”之间的最大区别在于数据与数据操作之间的关系。

OOP的核心原则是数据及其上的操作紧密耦合:一个对象拥有其数据,它拥有对数据操作的实现。它通过其接口,它响应的方法或消息的集合来隐藏来自其他对象的那些对象。因此,抽象的中心模型是数据本身,隐藏在它的接口形式的小API后面。

OOP中的中心活动是通过向它们添加新方法来组合新对象和扩展现有对象。

FP的核心原则是数据只与功能松散耦合。您可以在同一数据结构上编写不同的操作,抽象的中心模型是函数,而不是数据结构。函数隐藏了它们的实现,语言的抽象与函数以及它们组合或表达的方式有关,例如泛型函数或组合函数。

FP的核心活动是编写新功能。enter link description here

答案 1 :(得分:-4)

我建议到处使用oop .. :) 如果您需要某些功能,可以使用静态功能创建它。

例如

<?php
ThisClass {
    public static function thisFunction () {
        echo "runned";
    }
}
thisFunction () {
    echo "runned";
}

ThisClass::thisFunction();
thisFunction();
?>

OOP太棒了。 你可以按类来组织你的代码(每个类都是它的东西)。

绝对可以随处使用oop。

不是回答但是。是啊.. :)