java - 术语 : What do you call a function that does not change object state?

标签 java oop functional-programming

例如,我有一个类 Employee,它有函数 getName()pay()。第一个函数只返回人名(一个不可变属性),但第二个函数显着改变了对象(例如,从不同线程调用第二个函数是不好的)。

是否有一个术语表示不改变对象状态的函数,例如 getName()?不可变类中的所有函数都将具有此属性。

最佳答案

我认为这种功能没有全局公认的术语。

也许“无副作用”和“纯”接近您想要的,但它们意味着该函数不会改变任何状态(无论是您调用它的对象,还是任何其他对象)。

“纯”一词来自函数式编程世界,意思是函数的返回值仅取决于其参数的值。在面向对象的编程中,通常也将调用它的对象视为输入参数之一,因此属性 getter 可以被视为“纯”函数。

关于java - 术语 : What do you call a function that does not change object state?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589177/

相关文章:

java - 如何在 Oracle 中使用 Blob 对象作为 MapSqlParameterSource 的参数

java - 为什么父类(super class)分配给子类会出错?

python - 优雅地按顺序应用Python函数列表

Java -- 静态和动态类型 -- "what does this print?"

scala - 如何从左到右和从右到左遍历数组?

c# - C# 与 LISP 中的函数式编程

java - 引用 Maven jar 文件的 Jar 文件不能一致工作

java - 显示从数据库存储和读取的日期

javascript - Wicket - 附加 Javascript(什么是更好的做法?)

c# - 逻辑现在是多态而不是 Switch,但是构造呢?