关于oop:函数式编程和面向对象编程之间的区别

Difference between functional programming and object oriented programming

本问题已经有最佳答案,请猛点这里访问。

尽管这是一个非常基本的问题,有人能举例说明一下吗?我们应该在哪里使用函数式编程,在哪里使用面向对象的编程?


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

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

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

fp的中心原则是数据只松散地耦合到函数上。您可以在同一个数据结构上编写不同的操作,抽象的中心模型是函数,而不是数据结构。函数隐藏了它们的实现,语言的抽象与函数以及它们组合或表达的方式(如通用函数或组合器)有关。

FP中的中心活动正在编写新函数。请在此处输入链接说明


我建议在任何地方都使用OOP。:)如果您需要一些函数,可以用静态函数创建它。

例如

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
ThisClass {
    public static function thisFunction () {
        echo"runned";
    }
}
thisFunction () {
    echo"runned";
}

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

哎呀真棒。您可以按类组织代码(每个类都有自己的内容)。

一定要到处使用OOP。

不是刻薄的回答,而是。是啊。。:)