相关疑难解决方法(0)

功能编程:状态与重新分配

我需要帮助了解我当前的OOP状态概念与在Haskell或Clojure等函数语言中完成的方式之间的区别.

使用一个陈腐的例子,假设我们正在处理简化的银行账户对象/结构/任何事情.在OOP语言中,我有一些类持有对BankAccount的引用,BankAccount将具有诸如利率之类的事件的实例变量,以及诸如setInterestRate()之类的方法,其改变对象的状态并且通常不返回任何内容.在说Clojure中,我有一个银行账户结构(一个美化的散列图),以及带有银行账户参数和其他信息的特殊函数,并返回一个新的结构.因此,我现在不再更改原始对象的状态,而是返回一个具有所需修改的新对象.

那么......我该怎么办呢?覆盖引用旧银行帐户的任何变量?如果是这样,那是否比改变状态的OOP方法有优势?最后,在这两种情况下,似乎有一个变量引用具有必要更改的对象.像我一样迟钝,我对发生的事情只有一个模糊的概念.

我希望这是有道理的,谢谢你的帮助!

language-agnostic oop comparison functional-programming immutability

13
推荐指数
2
解决办法
2823
查看次数