Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
功能式OOP?_Oop_Functional Programming - Fatal编程技术网

功能式OOP?

功能式OOP?,oop,functional-programming,Oop,Functional Programming,如果我将成员变量设为const,并将频繁更改的数据作为接口方法的输入参数,会怎么样 因此,方法拥有参数(constmembers)并对数据进行操作,而不是对自身进行操作的数据拥有方法 这种风格是功能性的还是功能性的,还是仅仅称之为“无状态OOP” 有什么理由鼓励或反对它吗?我不认为它是功能性的,因为功能性往往意味着你的程序是由可组合函数(理想情况下是纯函数)组成的。然而,函数式编程的“原则”似乎存在——不变性、引用透明性。您(可能)唯一缺少的是作为第一类对象的函数。要真正被认为是函数式编程,您确

如果我将成员变量设为
const
,并将频繁更改的数据作为接口方法的输入参数,会怎么样

因此,方法拥有参数(
const
members)并对数据进行操作,而不是对自身进行操作的数据拥有方法

这种风格是功能性的还是功能性的,还是仅仅称之为“无状态OOP”


有什么理由鼓励或反对它吗?

我不认为它是功能性的,因为功能性往往意味着你的程序是由可组合函数(理想情况下是纯函数)组成的。然而,函数式编程的“原则”似乎存在——不变性、引用透明性。您(可能)唯一缺少的是作为第一类对象的函数。要真正被认为是函数式编程,您确实需要将函数视为第一类对象—它们可以被赋值、作为参数传递,以及从其他函数返回。因此,我认为这将被视为带有功能元素的OOP

精通编程语言设计的人可以随意修改或反驳这个答案