c# - 为什么默认情况下域(业务逻辑)中的不变性不更常见?

标签 c# immutability

<分区>

我最近一直在使用函数式编程,并且发现不可变性为解决问题提供了不同的视角。我正在考虑在我 future 的开发中默认使用不可变类。

除了潜在的小性能成本外,为什么不可变类在正常的“好”设计中没有作为标准约定更普遍?不可变类是否有我不知道的缺点(性能除外)?

我知道人们经常讨论不可变性,但我很难找到任何具体说明为什么不可变性比可变类使用得更多的东西。

最佳答案

我认为那只是因为我们正在研究 Von Neumann model ,它是可变的,它带来了 C 编程语言和大量的派生语言,如 C++、Java、C# 等。这些语言统治着世界,人们多年来一直以可变的方式思考。我们学习可变编程,我们被教导可变编程,现在编写的大多数系统都是可变的。甚至人和世界都是可变的。

我们都(好吧,我们大多数人)都是可变的。我们只是习惯了。

关于c# - 为什么默认情况下域(业务逻辑)中的不变性不更常见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8476107/

相关文章:

c# - 随机失败的 Specflow 测试

c# ienumerable 列表的快捷方式

java - 使用 varargs 时是否会创建一个新数组?

python - 为什么元组在分配相同的值时不会获得相同的 ID?

c# - Visual Studio Code Review 差异窗口

c# - 在 Mono 上测试文件权限

c# - 脚手架标识时的 VS 错误消息

python - 如何在 Python 中测试 "immutability-at-any-depth"?

Scala - vals 的初始化顺序

javascript - 如何在没有突变的情况下分配条件变量?